当日のOHP資料です。
#include <stdio.h> #include "s_print.h" int main(int argc, char *argv[] ) { int i = 10; while ( i > 0 ) { /* i が 0 より大きい間 */ s_print_char ( '*' ); /* '*' を画面に出力 */ /* while 文の本体の部分で i が変化しない */ /* だから、条件「i>0」の「成立/不成立」は変化しない */ /* このままだと、無限に '*' を出し続ける事になる */ } return 0; }
#include <stdio.h> #include "s_print.h" int main(int argc, char *argv[] ) { int i = 10; while ( i > 0 ) { /* i が 0 より大きい間 */ s_print_char ( '*' ); /* '*' を画面に出力 */ i = i - 1; /* 「i--」としてもよい */ /* while 文の本体を一度実行する度に、 i が、一つずつへってゆき、 最後に、i が 0 になるので、条件「i>0」が 不成立になる !! 丁度 '*' を 10 回出力した時 */ } s_print_newline(); return 0; }
#include <stdio.h> #include "s_print.h" int main(int argc, char *argv[] ) { int i = 10; while ( i > 0 ) { /* i が 0 より大きい間 */ s_print_char ( '*' ); /* '*' を画面に出力 */ i = i + 1; /* 「i++」としてもよい */ /* これだと i は変化するが 「i>0」という状態は 変化しないので、結局、無限ループ */ /* 「失敗」例 */ /* 単に、変数の値を変化させるのではなく、 変化を繰り返す事により、いつかは、 条件が不成立になるようにする必要がある */ } s_print_newline(); return 0; }
#include <stdio.h> #include "s_print.h" int main(int argc, char *argv[] ) { int i = 10; int j = 10; while ( i > 0 ) { /* i が 0 より大きい間 */ s_print_char ( '*' ); /* '*' を画面に出力 */ i = j - 1; /* これだと、j の値(10)が本体内で変化していないので、 結果的に i の値も、ずっと 9 のまま やはり、「i = i - 1」形、即ち「変数の値の更新」が本質 */ } s_print_newline(); return 0; }