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公開中】