while文と無限ループについて

2024.11.22


ゼロスクです。
本記事はこれからプログラミングに挑戦しよう、という方向けの記事となります。
 

繰り返し処理「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;
}

このように、繰り返し処理の中で条件に置いているboolean型の変数をfalseに切り替える事で、
一度だけ起こしてくれるプログラムに早変わりです。
 

条件式を使いこなそう

ここまでは「基本的な考え方」になりますが、
「条件式」を利用開始すると途端に「無限ループ」を発生させてしまう方が急増します。
 
上記まではwhile(条件)と記載していましたが、この「条件」は「条件式」も入ります。
 


while(条件式){
	//条件式を満たす間、このブロック範囲を何度も上から下へ実行していきます。
	System.out.println("ねぇ起きて?");
}

条件式とは?というところで、関係演算子の考え方が役立ちます。
 
例えば、「100 > 10」プログラム上にこのように記載をすると、
100は10よりも大きいので「true」という判定をしてくれます。
 
この判定結果を条件式の場所に書き込む事も可能です。


while(100 > 10){
	//条件式を満たす間、このブロック範囲を何度も上から下へ実行していきます。
	System.out.println("ねぇ起きて?");
}

しかし、このままだとまた無限ループしてしまうので、今回も変数を利用しましょう。
 


int i = 0;

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
株式会社ブレーンナレッジシステムズ
■note情報はこちら!
【ゼロスク講師によるnote公開中】