while文と無限ループ
こんにちは、ゼロスク講師です!
今回のテーマはプログラミングを行う上でも重要な
「繰り返しの構文」に関してです。
繰り返し処理「while文」とは
今回ピックアップした「while文」について、まずは基本的な文法から説明していきます。
while(条件){//条件を満たす間、このブロック範囲を何度も上から下へ実行していきます。
System.out.println("ねぇ起きて?");
}
条件と記載されている場所については、「true or false」が入ります。
例えば
while(true){//条件を満たす間、このブロック範囲を何度も上から下へ実行していきます。
System.out.println("ねぇ起きて?");
}
このように「条件」の場所に「真偽値であるtrue」を書けば、パソコンが延々と「ねぇ起きて?」とログを出力し続けます。
条件の真偽値がfalseに変わらない場合、基本的には「無限ループ」に陥ります。
無限ループにならないようにするためには、以下の対策をします。
1.条件の中身が変動するように「変数」を用いる。
2.ループするブロックの中で「break」という予約語を実行させてループ処理を抜け出す。
無限ループの対策
今回は1の考え方を考察しましょう。
「true or false」という2種類の判定は、booleanリテラルと呼ばれ真偽値を取り扱えます。
コードの中に記載すると
//flgという名前の変数に、trueを代入する
boolean flg = true;
flgという名前の変数を使って、再びwhile文を書いてみましょう。
while(flg){//条件を満たす間、このブロック範囲を何度も上から下へ実行していきます。
System.out.println("ねぇ起きて?");
}
このように、boolean型の変数を使って条件の場所に設置をする事が出来ます。
しかしこのままだと先ほどのtrueを直接書き込んだ内容の二の舞です。
繰り返し処理の中で、flgの中身をfalseに変更してみましょう。
while(flg){
System.out.println("ねぇ起きて?");
flg = false;//変数flgにfalseを代入
}
このように、繰り返し処理の中で条件に置いているboolean型の変数をfalseに切り替える事で、一度だけ起こしてくれるプログラムに早変わりです。
//boolean型の変数flgにtrueを代入する
boolean flg = true;
while(flg){
System.out.println("ねぇ起きて?");
flg = false;//変数flgにfalseを代入
}
条件式を使いこなす
ここまでは「基本的な考え方」になりますが、「条件式」を利用開始すると途端に「無限ループ」を発生させてしまう方が急増します。
上記まではwhile(条件)と記載していましたが、この「条件」は「条件式」も入ります。
//条件式を満たす間、このブロック範囲を何度も上から下へ実行していきます。
while(条件式){
System.out.println("ねぇ起きて?");
}
条件式とは?というところで、関係演算子の考え方が役立ちます。
例えば、「100 > 10」プログラム上にこのように記載をすると、
100は10よりも大きいので「true」という判定をしてくれます。
この判定結果を条件式の場所に書き込む事も可能です。
//条件式:100が10よりも大きい場合true
while(100 > 10){
System.out.println("ねぇ起きて?");
}
しかし、このままだとまた無限ループしてしまうので、今回も変数を利用しましょう。
int i = 0;
//条件式:変数iが100未満であればtrue
while(100 > i){
System.out.println("ねぇ起きて?");
//iに1加算する
i++;
}
先述した変数 flg の時と同様に、数字を取り扱う変数 i を1ずつ増加させ、iが100になった時、 100 > 100 は条件を満たしていない為、「false」判定、
つまり繰り返し処理が終了します。
100回ほど、「ねぇ起きて?」と、起こしてくれるプログラムの完成です。
今回のような、関係演算子を利用すると途端に「true or false」の結果が目で追えなくなり、結果的に無限ループになっても対処方法がわからない、という事になる人も多くいます。
そうならない為にも関係演算子をしっかり学んでおきましょう。
ゼロスクでは関係演算子をオンライン講座の「chapter08」の講座にて公開中です。
そしてwhile文もしっかり学ぼう、という方は「chapter09」にもチャレンジしてみましょう。
※講座の学習にはパスワードが必要となります。
ゼロスクの説明会に参加して、パスワードをゲットしましょう。
ゼロスクでは初めてプログラミングを学び始める方に向けて、
よくあるエラーやその解決方法などのハウツーを今後発信していきたいと思います。
スキルアップして正社員雇用を目指すならばゼロスクへ!
ゼロスクは受講生を随時募集中です!
あなたからのご応募お待ちしております!
お申し込みはこちらから!
あなたも、ゼロスクで一緒に無料でJavaを勉強しましょう!
■ゼロスクへのお問い合わせ、お申し込みはこちらから!
Javaを0円で学ぼう!ゼロスク
■株式会社ブレーンナレッジシステムズHP
株式会社ブレーンナレッジシステムズ