青色プログラム。

日々楽しくプログラミングを学ぶ

【Java】基礎を学ぶ【#2】

  1, 自己代入の省略
  2, キャメルケース
  3, キャスト
  4, 演算子
  5, if文
  6, swich文
  7, while文
  8, for文
  9, 配列の定義
10, lengthメソッド
11, 拡張for文
12, メソッドの定義
13, 引数
14, 戻り値

自己代入の省略

i = i + 10; → i += 10;
i = i - 10; → i -= 10;
i = i * 10; → i *= 10;
i = i / 10; → i /= 10;
i = i % 10; → i %= 10;

1の場合のみ
i = i + 1; → i += 1; → i++;
i = i - 1;  → i -= 1;  → i--;

キャメルケース

変数が2語以上の場合は大文字で分かりやすくする
例:userName

キャスト

intの場合は小数点が表示されない為、表示されたい場合は、doubleに変換する

int number1 = 12;
int number2 = 5;
System.out.println((double)number1 / number2);

結果:2.4

演算子

かつ  → &&
または → ||
否定  → !

例:10 < 5でない

System.out.println(!(10 < 5)); 

 

if文

もし~ならば〇〇〇

if(条件式){
  // もし条件式なら、ここの内容を実行
}


もし~ならば〇〇〇、そうでなく~ならば〇〇〇、それ以外は〇〇〇

if(条件式) {
  // もし条件式なら、ここの内容を実行
} else if(条件式) {
  // そうでなく条件式なら、ここの内容を実行
} else {
  // それ以外は、ここの内容を実行
}

 

swich文

値が一致している物を実行する
※『 : 』『 ; 』に注意

switch (条件式) {
  case 値1: // 値1に 10 を書くと 条件式の結果が 10 の場合、
   処理;    // この処理を実行
   break;

  case 値2:
   処理;
   break;

  case 値3:
   処理;
   break;
}

if文のelseみたいに、どれも一致しない場合は〇〇は default を使う

default:
 処理;
 break;

while文

~の間、繰り返し処理する

int i = 1;
while (i<=5) {
  System.out.println(i);
  i++;
}

この場合、iが5より小さい場合 → iに1足して5になるまで表示となる
※ 無限ループにならないように意識する

for文

同じ繰り返し処理です

for(int i = 1; i <= 10; i++){
 System.out.println(i + "回ジャンプ");
}

これで、文字列が連結しつつ1~10まで繰り返し処理されます。

※ break

繰り返し処理を終了させる(処理の軽量化にも)

for(int i = 1; i <= 10; i++){
 if (i > 5) {
  break;  // 1~5までが表示される
 }
 System.out.println(i);
}


※ continue

その周の処理だけをスキップする

for (int i = 1; i <=10; i++){
 if (i % 3 == 0){
  continue;   // 3が表示されなくなる
 }
 System.out.println(i);
}

 

配列の定義

変数と違い複数の値をまとめておくことが可能

int[] number = {5, 15, 30};  // 数えは1つ目から0, 1, 2となる
String[] names = {"tarou", "hanako", "satou"};


インデックス番号は0から始まる

String[] names = {"tarou", "hanako", "nanako"};
System.out.println("私の名前は" + names[0] + "です");

結果:私の名前はtarouです

配列の要素の上書き

特定の要素に値を代入できる

String[] names = {"tarou", "hanako", "nanako"};
System.out.println(names[0]);
names[0] = "tamako";
System.out.println(names[0]);

結果:tarou → tamako

配列とfor文の組み合わせ

表示させる場合一つずつだと大変なので組み合わせる

String[] names = {"tarou", "hanako", "satou"};
for (int i = 1; i < 3; i++){  // 0~2まで
 System.out.println("Hello" + names[i]);
}

 

lengthメソッド

要素の数を数えるメソッドです。

String[] names = {"tarou", "hanako", "satou"};
System.out.println(names.length);

結果:3

for文との組み合わせ

String[] names = {"tarou", "hanako", "satou"};
for(int i = 0; i < names.length; i++){  // 3つとなる
 System.out.println("こんにちは、" + names[i]);
}

 

拡張for文

シンプルに書くことが可能

for (データ型 変数名 : 配列名) {
 繰り返す処理;
}

String[] names = {"tarou", "hanako", "satou"};
for (String name: names) {  // nameに代入するイメージ
 System.out.println(name);
}

拡張for文は、自動的に繰り返す処理をしてくれます。

例:奇数と偶数の合計を表示する

class Main {
 int[] numbers = {1, 4, 6, 9, 13, 16};

 int oddNum = 0;
 int evenNum = 0;

 for (int number : numbers){  // 拡張for文
  if (number % 2 == 0){
   evenNum += number;
  } else {
   oddNum += number;
  }
 }
 System.out.println("奇数の和は" + oddNum);
 System.out.println("偶数の和は" + evenNum);

または

class Main {
 int[] numbers = {1, 4, 6, 9, 13, 16};

 int oddNum = 0;
 int evenNum = 0;

 for (int i = 0; i < numbers.length; i++) {  // for文
  if (numbers[i] % 2 == 0) {
   evenNum += numbers[i];
  } else {
   oddNum += numbers[i];
  }
 }
 System.out.println("奇数の和は" + oddNum);
 System.out.println("偶数の和は" + evenNum);

 

メソッドの定義

メソッドはクラスの中に定義する

public static void メソッド名(){
 ここに処理
}
public static void hello(){
 System.out.println("Hello World");
}


メソッドの呼び出し

結果:Hello World
   Hello World

class Main{
 public static void main(Srting[] args){
  hello();
  hello();
 }
 public static void hello(){  // 呼び出される
 System.out.println("Hello World");
}

 

引数

メソッドに引数を渡す。

class Main{
 public static void main(Srting[] args){
  hello("ao");
 }
 public static void hello(String name){
  System.out.println(name + "です。");
}

結果:aoです。

※ 複数の引数を持つメソッド

左から順に「第1引数、第2引数…」と呼ぶ
『,』で区切る

public static void メソッド名(データ型 変数1, データ型 変数2){
 実行する処理;
}

class Main{
 public static void main(String[] args){
  printPrice("牛タン", 1000);
  printPrice("ステーキ", 2000);  // String int の順番に注意
 }
 public static void printPrice(String item, int price){
  System.out.println(item + "は" + price + "円です。");
 }

結果:牛タンは1000円です。
   ステーキは2000円です。
 

戻り値

returnを使うと、呼び出し元に値を返す事が出来ます。

public static 戻り値のデータ型 メソッド名(引数){
 return 戻り値;
}

public static void main(String[] args){
 int total = add(5, 10);
 System.out.println(total);
}
public static int add(int a, int b){
 return a + b;
}

結果:15

PDFファイルに入力&電子印鑑を追加する方法【無料】

 

Adobe Acrobat Reader DC(無償)を使用し、
PDFファイルに入力&電子印鑑(捺印)を追加する方法です。

インストール(左のAcrobat Reader DC) → Adobe Acrobat Reader DC

インストールが完了したら左上「ファイル」→「開く」からPDFファイルを開きます。


・「著名と記入」を選択し入力します。

※ 入力フォームに日本語入力が出来ない場合、
左上の「編集」→「環境設定」→分類の「セキュリティ(拡張)」→「起動時に保護モードを有効にする」のチェックを外します。


・電子印鑑を追加する方法

サイト「Web認印」を利用しweb上で無料のPDF電子印鑑を作成できます。

Web認印で名前の印鑑を作成しダウンロードします。 → Web認印ページ

※画像でしか作成できない場合は、何度か押してみてください

出来ましたら「著名と記入」より下にある「その他のツール」→「スタンプ」
→ 上の「カスタムスタンプ」→「作成」→「ダウンロードした印鑑を選択」

作成出来たら「スタンプ」→「電子印鑑」にて任意の場所に押します。
押した印鑑をクリックするとサイズの変更などが出来ます。


・保存する
左上の「ファイル」→「上書き保存」で完成です。

【プロフィール絵】気分転換にオリジナルキャラクターを新しく描いてみた。

 

最近は、エンジニアとして内定が決まり入社までに基盤を作っています、こんにちは。

内容としては、すっきりJavaを読み込んでProgateをやりこんでいます。

 

今回は気分転換にサムネ → プロフィール絵に困ったので描いてみた。(第二回)

のオリジナルキャラクターを新しくサムネ絵描いてみました!のでペタリ

f:id:aocattleya:20180818171206j:plain

※画像の無断使用は禁止します。
いつものIDの『青カトレア』の擬人化みたいな雰囲気です。

 

作業工程

f:id:aocattleya:20180818171523j:plain

 

使用ツール

・FireAlpaca(無料)
FAVO F-430(ペンタブ:2000円)

 

そういえば絵が描けるプログラマーって需要あるんですかね(ゲーム・アプリ?)
昔の経験でアイディアの生み出し方みたいな物は持っているので、良い物思い付いたら個人でもアプリ開発とかで積極的に活かしてみたいですね!

 

前回
プロフィール絵『青カトレア』差分var.描いてみた。

前々回
プロフィール絵を描いてみた。

 

ではでは。

【SQL】基礎操作を学ぶ


少し前に学習して大体は覚えているのですが、復習していたのでまとめておきます。
今回基本的な操作なのでJOINとかは今度投稿しようと思います。

 

SELECT

どのカラムを習得するか

FROM

どのテーブルを取得するか

SELECT name, price;

複数のカラムを習得

SELECT *

全部のカラムを習得する

SELECT * FROM purchases WHERE category = "apple";

カテゴリーのリンゴであるデータを習得

SELECT * FROM purchases WHERE price 1000;

数字の場合は" "は要らない

SERECT * FROM purchases WHERE price >= 1000;

priceが1000以上のデータを取得

SELECT * FROM purchases WHERE name LIKE "%プリン%";

nameカラムがプリンのデータを取得します。

SELECT * FROM purchases WHERE name LIKE "プリン%";

nameカラムがプリンで始まるデータを取得、終わりは先に%

SELECT * FROM purchases WHERE NOT character_name = "青カトレア";

character_nameが青カトレアじゃないデータを取得

SELECT * FROM purchases WHERE NOT character_name LIKE "%プリン%";

character_nameがプリンを含まないデータを取得

SELECTFROM purchases WHERE price IS NULL;

NULLのデータを取得

SELECTFROM purchases WHERE price IS NOT NULL;

NULLじゃないデータを取得

SELECT * FROM purchases WHERE category = "食費" AND character_name = "青カトレア";

categoryが食費 かつ character_nameが青カトレアのデータを取得

SELECTFROM purchases WHERE category = "食費" OR character_name = "青カトレア";
categoryが食費 または character_nameが青カトレアのデータを取得

SELECTFROM purchases ORDER BY price DESC;

priceカラムを 降順 にする

SELECTFROM purchases WHERE character_name = "青カトレア" ORDER BY price ASC;

priceカラムを 昇順 にする(WHEREも使えるよ)

SELECT * FROM purchases LIMIT 5;

取得結果が最大5件データを習得


 

~ おまけ 知っておきましょう ~

メーカーとアウトソーシング それぞれの長所と短所は?

・メーカー

長所:社内技術の向上
短所:人員を抱えると人件費が固定して増幅する

・アウトソージング

長所:自社では実現できなかった高品質な水準で業務を遂行出来るようになる
短所:アウトソーシングした業務経験が自社に蓄積されない

httpとhttpsの違い
非暗号化通信と暗号化通信

クロスサイトスクリプティングとは
掲示板など動的ウェブページに不正なスクリプトを埋め込む脆弱性を付いた攻撃です。
cookie情報を利用した不正アクセス、HTMLタグを使った入力フォームによる情報収集

SQLインジェクションとは
・アプリケーションのセキュリティ上の不備を意図的に利用し、
 アプリケーションが想定しないSQL文を実行させることにより、
 データベースシステムを不正に操作する攻撃です。

【C#】VisualStudioで簡単計算プログラムを作ってみる

 ここ最近ずっとJavaの勉強していますが、
自分がプログラミングを始めたきっかけの人が使っている言語「C#」も触り初めました。

今回はいきなり触ってみる感じですが、C#って何?って方は簡単に言うと「C言語」「C++」の後継言語であり「C++++」の+を合体させて「C#

C++Javaをベースに作られていてJavaをやってる人はC#に入りやすいと言われ、とても似ています!ですが基本はWindows環境です。

 

至らない点もあると思いますがアウトプットが大事なので、まとめてみます。

最初は参考書を参考に「簡単計算プログラム」を作成してみます。
作ってみるって人がいるかは分かりませんが、書いてるとうりにすれば出来るはず。
(上手くいかない&間違えてるなどあればコメントください)

前提:VisualStudio2017(C#,.NET Framework)をインストール

 

1、Visual Studio Community 2017を起動

2、[新規作成] → [プロジェクト]

3、新しいプロジェクトの[テンプレート] → [Visual C#] → [Windows フォームアプリケーション(.NET Framework)] をクリック

4、名前欄に「SimpleCalc」でOKボタン
  From1の何もないアプリ画面が出来ました。

6、画面に[ツールボックス]タブから"TextBox"を探してドラック&ドロップ

7、画面にテキストボックスが作成されました。
  左上に配置する(ガイドラインが出るのでバランスの良い位置に)

8、作成されたテキストボックスをクリックし、
  [プロパティ]タブの(Name)欄を「Input1TextBox」と入力

9、[ツールボックス]から"Label"を探しテキストボックスの右にドラック&ドロップ
  テキストボックスの右に配置します。

10、作成されたラベルをクリックし[プロパティ]タブの(Name)欄に「PlusLabel」と入力
  +と表示させたいので[プロパティ]タブのText欄に「+」と入力

※現在のイメージ:[               ] +

11、+ の右側にツールボックスから"TextBox"をドラック&ドロップ

12、[プロパティ]タブの(Name)に「Input2TextBox」と入力

※現在のイメージ:[    ] + [    ]

13、イメージの右にさらに"Label"を配置

14、[プロパティ]タブの(Name)欄に「EqualLabel」と入力

15、[プロパティ]タブのText欄に「=」と入力

※現在のイメージ:[    ] + [    ] =

16、Form1のサイズがバランスよくないので、Form1をクリック
(作成しているアプリの画面全体を選択してる感じになったら)

17、プロパティのSize欄の数値を「400, 110」に変更

18、= の右に"TextBox"をドラック&ドロップ

19、[プロパティ]の(Name)欄に「AnswerTextBox」と入力

※現在のイメージ:[    ] + [    ] = [    ]

20、イメージに下にツールボックスから"Button"をドラック&ドロップ

21、画面に貼り付けたボタンをつまんで右に伸ばします

※現在のイメージ
[    ] + [    ] = [    ]
[                      button1      ]

22、作成したボタンをクリックし、
[プロパティ]タブの(Name)欄に「CalcButton」と入力
[プロパティ]タブのText欄に「計算する」と入力

23、Form1の[プロパティ]を表示(全体選択)
  プロパティのText欄に「簡単計算プログラム」と入力(タイトルが変わる)

23、見た目が完成しました!VisualStudioの上あたりにある[開始]をクリック

f:id:aocattleya:20180708174359j:plain

こんな感じのアプリの外観が完成!
しかし、数字を書いて計算ボタンを押しても今のままでは画像みたいに結果は出ません

ここからプログラミングコードを書いていきます。

24、さっきの画面に戻り画面の[   計算する   ]ボタンをダブルクリック

25、コード画面に切り替わります。

26、今、点滅している所に下記のコードを書いていきます。

f:id:aocattleya:20180708174758j:plain

27、左上の[ファイル]から[すべて保存]をクリック

28、完成!開始をクリックしたら最初の画像みたいに計算ができるようになりました。

 

しかし、このままでは数字以外や何も書かなかった場合に上手く動作しないので、
コードを変更する必要があります。

29、下記のコードを追加します。

f:id:aocattleya:20180709022322j:plain

 これで完成!

アプリの使用

保存したファイルの場所を開き [SimpleCalc] → [SimpleCalc] → [bin] → [Debug] → [SimpleCals.exe]

 

他にもタイマー、付箋メモ、ボールゲーム、家計簿などいくつか作ってみたので興味があったらGitHubにまとめているので見てみてください。