実行順序の制御

実行順序の制御
九州大学経済学部
条件分岐
命令1
条件
yes
命令2a
命令3
no
実行する命令を選択
条件が真のとき
命令1
命令2a
命令3
条件が偽のとき
命令2b
命令1
命令2b
命令3
if文による記述
命令1
条件
yes
命令2a
命令3
no
プログラム
命令1
if(条件){
命令2a
}else{
命令2b
命令2b
}
命令3
条件が偽のとき何も
しないならば、
else{命令2b}
を省略する
if文の組み合せ
プログラム
条件1
no
yes
命令1
no
条件2
yes
命令2
条件3 no
yes
命令3a
命令4
命令3b
if(条件1){
命令1
if(条件2){
命令2
}
}else{
if(条件3){
命令3a
}else{
命令3b
}
命令4
}
繰り返し(不適?)
命令 1
命令 2
条件
no
命令 3
yes
命令を繰り返して実行
命令 1
命令 2
命令 2
…
(条件が偽)
命令 3
少なくとも1回は命
令2を実行
繰り返し
命令 1
条件
yes
命令 2
命令 3
no
命令を繰り返して実行
最初に条件のチェック
命令 1
命令 2
命令 2
…
(条件が偽)
命令 3
命令2を一度も実行
しないことがある
while文による記述
命令 1
条件
yes
命令 2
命令 3
no
プログラム
命令1
while(条件){
命令2
}
命令3
注意
いつかは必ず条件が
偽になるように!
繰り返しの回数
命令 1
i←1
i≦n
yes
命令 2
i ← i+1
命令 3
no
繰り返す回数を数える
(n回実行する)
命令 1
命令 2 (i=1)
命令 2 (i=2)
…
命令 2 (i=n)
(条件が偽:i>n)
命令 3
while文による記述
命令 1
i←1
i≦n
yes
命令 2
i ← i+1
命令 3
no
プログラム
命令1
i=1;
while(i<=n){
命令2
i=i+1;
}
命令3
i=i+1; は、
i++; または ++i;
でもよい
for文による記述
命令 1
i←1
i≦n
yes
命令 2
i ← i+1
命令 3
no
プログラム
命令1
for(i=1;i<=n;i++){
命令2
}
命令3
注意
for(i=0;++i<=n;){
for(i=0;i++<n;){
は同じ動作をする
for文の動作の確認
プログラム
for(i=1;i<=n;i++){
命令2
}
命令 1
i←1
i≦n
yes
命令 2
i ← i+1
命令 3
no
実行の内容
回数 1 2 …
i
1 2 …
i≦n y y …
i
1 2 …
n n+1
n n+1
y n
n
++i の動作
プログラム
for(i=0;++i<=n;){
命令2
}
命令 1
i←0
++i:1を加えた後で評価
i ← i+1
i≦n
yes
命令 2
命令 3
no
実行の内容
回数 1 2 …
i
1 2 …
i≦n y y …
i
1 2 …
n n+1
n n+1
y n
n
i++ の動作
プログラム
for(i=0;i++<n;){
命令2
}
命令 1
i←0
i<n
yes
i ← i+1
命令 2
命令 3
i++:1を加える前に評価
no
実行の内容
回数 1 2 … n n+1
i
0 1 … n-1 n
i<n y y … y
n
i
1 2 … n