前置き
前回の続き
前回は、[Hello World!]の出力と変数について学んだことを記載しましたね。 なので、今回は条件分岐の方を勉強したので、まとめていきたいと思います。自分的には、早くDartの基礎を押さえて、Android、iOSに人工知能を搭載したものを作成したいですね。
意思や感情といった、人間が持つものをAndroid、iOS端末のアプリに組み込んだ時何が起こるか…
さて、自分の目標はここまでにして、条件分岐について記載していきましょう。
条件分岐
if文
では、まずは「if文」ですね。 どの言語にでもあるif文ですが、まぁ、基本的なものを勉強しているので記載しておきましょう。void main() {
var a = 0;
if(a < 1){
print("犬");
}else if (a < 2){
print("猫");
}else{
print("鳥");
}
}
こんな感じですね。
演算子の補足も後でしましょうか。
先にプログラムの内容からいきましょう。
このif文は、
varを使用していることから、型推論型で数値を入れてif文を回しています。
条件式ですが、
上から順々にやっていきましょう。
//a が 1より小さい場合は 犬 を出力する
if(a < 1){print("犬");}
//a が 1より小さい場合は 犬 を出力する
//そうでない場合、もし a が 2より小さい場合は 猫 を出力する
if(a < 1){print("犬");}
else if (a < 2){print("猫");}
//a が 1より小さい場合は 犬 を出力する
//そうでない場合、もし a が 2より小さい場合は 猫 を出力する
//全ての条件に当てはまらな場合は、 鳥 を出力する
if(a < 1){print("犬");}
else if (a < 2){print("猫");}
else{print("鳥");}
今回は簡単にこんな感じの構造をしています。
ifは もし 条件式1 が成立する場合は 〜 を
elseは ifは 条件式1が成立しない場合、もし 条件式2が成立する場合は 〜 を
else 全てが成り立たない場合は 〜 を
という風に表すと簡単に理解できるかもしれませんね。
では、演算子の補足をしましょうか。
補足:演算子
プログラム言語ごとに、演算子は異なる部分があるかもしれません [&&]で[〜かつ〜]と表現する場合や[||]で[〜または〜]と表現する場合もありますね。 まぁ、そんなに違いはないと思いますが… それぞれの言語で一応、使用する演算子はチェックしておくといいでしょう。 とりあえず、まとめておきましょうか| 演算子 | 意味 | 備考 |
|---|---|---|
| a < b | a より bの方が小さい | 含まない |
| a > b | a より bの方が大きい | 含まない |
| a <= b | a が b以下の場合 | 含む |
| a >= b | a が b以上の場合 | 含む |
| a == b | a が bと等しい場合 | - |
| a = b | a が bと等しい場合 | - |
| a != b | a が bと等しくない場合 | - |
| a <> b | a が bと等しくない場合 | - |
上記のようのものがありますね。何度も書きますが、
言語ごとに多少の違いがありますので注意してください。
さてさて、最後に[swtich-case文]について解説して今回は終わりましょう。
switch-case文
switch-case文についてもif文同様に、まずは、プログラムを載せていきましょう。void main() {
var a = 0;
switch(a){
case 0:
print("犬");
break;
case 1:
print("猫");
break;
default:
print("鳥");
break;
}
}
こんな感じになりますね。
さて、ここから細かくしていきましょう。
//switch(式)
switch(a){}
この部分で重要になるのは
何の式を条件分岐に当てはめたいのか
ですね。(表現は人それぞれなので納得できる人、できない人がいますが、自分はこの表現で納得できるためこの表現を使います。解釈違いでしたら、自分の解釈を見つけてください。)
なので、このswitchの()の部分には条件分岐させたい「式」を当てはめていきましょう。
このswitch以降は条件分岐の式を書いていきましょう。
case 0:
print("犬");
break; //breakでループ終了
case 1:
print("猫");
break; //breakでループ終了
され、条件分岐の中で中間部分のこちらですね。
これを文字で表してみましょう。
ケース(式が) 0の場合:
"犬"を出力する;
ループ終了;
ケース(式が) 1の場合:
"猫"を出力する;
ループ終了;
別の表し方をすると
ケース(式)に入れられる値が一致する場合:
"犬"を出力する;
ループ終了;
ケース(式)に入れられる値が一致する場合:
"猫"を出力する;
ループ終了;
結構見辛い…ですが!!まぁ、よしとしましょう。
ここでポイントなのは条件式の最後には、[break]をつける
breakをつけることで、ループを終了させます。
switch-case文を使用する時は、[break]を忘れずつけましょう。
さて、ここで疑問に思うのは[default]の存在ですね。
defalutは簡単に表すのであれば、どの条件にも当てはまらない場合はという感じですね。またはどの条件とも一致しない場合はという感じです。if文のelseのような役割をしています。
なので、defaultはエラー文なんかにも使えるかもしれません。
再度、コメントを記載して全体をプログラム全体を見てみましょう。
void main() {
//型推論で値を定義
var a = 0;
//条件式(a)を格納
switch(a){
//条件式が0の場合
case 0:
//"犬"を出力
print("犬");
//ループ終了
break;
//条件式が2の場合
case 1:
//"猫"を出力
print("猫");
//ループ終了
break;
//条件式がどれにも当てはまらない場合
default:
//"鳥"を出力
print("鳥");
//ループ終了
break;
または
void main() {
//型推論で値を定義
var a = 0;
//条件式(a)を格納
switch(a){
//条件式がcaseの値と一致する場合
case 0:
//"犬"を出力
print("犬");
//ループ終了
break;
//条件式がcaseの値と一致する場合
case 1:
//"猫"を出力
print("猫");
//ループ終了
break;
//条件式がどのcaseの値とも当てはまらない場合
default:
//"鳥"を出力
print("鳥");
//ループ終了
break;
こんな感じですね。
では、今回if文とswitch-case文について勉強しましたが、これはどの言語にもあるようなものなので、見なくてもわかるという方が多いかもしれません。まだ理解できていないなぁ。という方は実際に手を動かしたり、自分でコードを組み直してトライするのをお勧めします。
いつもの挨拶文を下に書いて終わりにします。
ここまで読んでいただき、ありがとうございました。
では、また次回。
挨拶
どうも、組込みエンジニアとして、とある企業におります粉です。・組込みエンジニアですがAIエンジニア、機械学習エンジニアとして転職したいので、自身でいろいろと勉強を行っております。
・なんでAIエンジニアや機械学習エンジニアになりたいの?と疑問をもたれる方も多いと思いますので、簡単に説明させていただきます。
1、元はAIを作ってみたい、社会問題、労働に関してもっと働きやすい環境が必要なのではないか?と考えたため様々な課題をAIなどの先端技術でアプローチをかけてみたいと思い、AIエンジニアを目指しました。
2、ですが、今やっているのは組込みエンジニアのため、使用する技術、言語が違うといったことから、独学でやってみようと思いまして、最近勉強をはじめました。
3、転職を目指す、自身の夢を叶えたいという願いもありますので、こうやって学んだことを記事しています。
・いろいろとお話ししましたが、まずは、私よりも知識、技術が豊富な先輩方から多くのことを意見、修正点、アドバイスをいただけることを楽しみにしています。
・まだまだ新参者、理解が足りていない部分もあるので記事を書きながら、修正を繰り返して理解を深めれればと思っております。(AIを研究している企業や研究機関に転職したいです。
・こんな手法もあるぞ、やり方はこうだ!!などの意見も募集しております。