while文(2) for文

値と条件式
int x;
double y;
©Jun Usuki
(※) yには右辺の演算結果が格納され、
yの値が条件判定で使用される
問: 次を説明せよ! (文1はいつ実行される?)
例1) if ( 1 ) { 文1; } else { 文2; } // いつも
例2) if ( 0 ) { 文1; } else { 文2; } // 実行されることはない
例3) if ( x ) { 文1; } else { 文2; } // x = ・・・, 1, 2, -1, ・・・
例4) if ( y ) { 文1; } else { 文2; } // y = ・・・, 1.0, 2.0, 0.1, -0.1, ・・・
例5) if ( !0 ) { 文1; } else { 文2; } // いつも
例6) if ( !5 ) { 文1; } else { 文2; } // 実行されることはない
例7) if ( x==7 ) { 文1; } else { 文2; } // x = 7
例8) if ( x!=7 ) { 文1; } else { 文2; } // x= ・・, -1, 0, 1,~, 6, 8, 9, ・・
例9) if ( x%3 ) { 文1; } else { 文2; } // xが3の倍数でないとき
例10) if ( !(x%3) ) { 文1; } else { 文2; } // xが3の倍数のとき
例11) if ( y=(x%3) ) { 文1; } else { 文2; } // 3の倍数でないとき(※)
例12) if ( y=!(x%3) ) { 文1; } else { 文2; } // xが3の倍数のとき(※)
例13) if ( x<=7 && !(x%3) ) { 文1; } else { 文2; } //7以下で3の倍数
例14) if ( x<=7 || !(x%3) ) { 文1; } else { 文2; } //7以下か3の倍数
©Jun Usuki
while文を思い出そう!
&
利便性を高めよう!
int sum=0, x=0;
do{
sum = sum + x;
x = x + 1;
printf("sum=%d, x=%d ¥n", sum, x);
getchar(); // ←これが便利!
}while( x < 20 );
©Jun Usuki
©Jun Usuki
while文(2)
for文
括弧内を繰り返し実行する。
N=5とすると、何回繰り返す?
xが0でない間、括弧内を繰り返し実行する。
do {
while( x ){
文;
}
文;
} while( x );
xには数値や数式が入る。条件式でも良い。
for (i=0; i<N; i++) {
文;
}
for (i=0; i<N; i+=1) {
文;
}
for (i=10; i>N; i--) {
文;
}
for (i=10; i>N; i-=2) {
文;
}
違いは?
・・・(ヒント)プログラムは上から順に実行される!
xが0であっても
最低1度は
括弧内が実行される
xが0だと
1度も
括弧内は実行されない
©Jun Usuki
練習:ミスを減らそう!
①~④を実行すると何が表示される?
①
for( i=0; i<10; i++) { printf(“A”); printf(“B”); }
②
for( i=0; i<10; i++)
printf(“A”); printf(“B”);
③
i=0; while(i< 10) { printf(“A”); printf(“B”); i++; }
④
i=0; while(i< 10)
printf(“A”); printf(“B”); i++;
1