LotosLabo

プログラミング技術とか気になった情報を載せていきます

C++について2

条件式

if文

<一つの文>


if(条件)
文;

例: aが1のとき

if(a == 1)
cout << "1です";



複数文>


if(条件){
文1;
文2;
}

例:

if(a == 1){
cout << "1です";
}



if~else文


if(条件)
文1;
else
文2;


if(条件){
文1;
文2;
}else{
文3;
文4;
}


例:

if(a == 1){
cout << "1です";
}else{
cout << "1じゃないです";
}


複数if



if(条件1){
文1;
文2;
}
else if(条件2){
文3;
文4;
}
else if(条件3){
・・・
}

switch文



switch(式){
case 値1:
文1;
break;
case 値2:
文2;
break;
default:
文;
break;
}


if文よりも簡単に複数の条件にをあわせられる。


論理演算子


&& 左辺・右辺がともにtrueの場合

a == 2 && b == 2

|| 左辺・右辺のどちらかがtrueの場合

a == 2 || b == 2

! 右辺がflaseの場合

!(a==6)


条件演算子


条件 ? trueのときの式1 : falseのときの式2

例: 

if文の場合

if(a == 1){
num1 = 5;
}else{
num1 = 6;
}



条件演算子を使う

num1 = (a == 1) ? 5 : 6;


if文をこんな簡単に書き換えられる。


for文


for(初期化の式1; 繰り返すかどうか調べる2; 変化のための式3){
 文;
}
 
文を繰り返します。
 
 

例:

for(int i=1; i<=5; i++){
cout << "繰り返す\n";
}


iを1つずつ増やしながらiが5位上になるまで繰り返す。


例:

入力した数だけ+を出力させる

int test;
cout << "いくつ+を出力しますか?\n";
cin >> test;
 
for(int i=1; i<=test; i++){
cout << '+';
}
cout <<'\n';




出力結果
 
いくつ+を出力しますか?
10
++++++++++


while文


while(条件){
 文1;
}


条件がtrueの時に
ブロック内の分を順に繰り返し処理する


例:

int i = 1;
while(i <=5){
cout << i << "番目の繰り返し\n";
i++;
}
cout << "繰り返しが終わり\n";



出力結果

1番めの繰り返し



繰り返しが終わり

<ループ処理>

int i = 1;
while(i <= 5){
cout << i << "番目の繰り返し\n";
}


これだとループしてしまいますので、iを増加させる必要があります。


<慣用的な条件>

int num = 2;
while(num){
cout << "整数を入力してください。0で終了\n";
cin >> num;
cout << num << "が入力されました\n";
}
cout << "繰り返しが終わり。\n";



出力結果

整数を入力してください(0で終了)
1
1が入力されました




while(num)
while(num !=0)

0であるときに


while(!num)
while(num == 0)

0以外の時に

do~while文

最後に指定した条件がtrueである間,ブロック内の処理を繰り返す。

do{
文1;
}while(条件);


例:

do{
cout << i << "番目の繰り返し\n";
i++;
}while(i <= 5); 
cout << "繰り返しが終わりました\n";



iが5以外であれば繰り返しを終わる。

break文

break;

処理の流れを強制的に終了し、そのブロックから抜ける

continue文

continue;

ブロック内の処理を飛ばし、ブロックの先頭位置に戻って次の処理を続ける。