見出し画像

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
    株式会社ブレーンナレッジシステムズ