English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Javaのwhileおよびdo...whileループ
このチュートリアルでは、Javaでwhileおよびdo...whileループを使用する方法を例を通じて学び、whileループがコンピュータプログラミングでどのように動作するかも学びます
コンピュータプログラミングでは、特定の条件(テスト式がfalse)まで特定のコードブロックを繰り返し実行するためにループを使用します。例えば、5画面に文を印刷する必要があると想像してみてください50回。いいえ、printステートメントを使って
0回(ループを使わない場合)があります。百万回の文を印刷する必要があると想像してみてください。ループを使うことで、一度だけprintステートメントを書き、任意の回数実行できます。3これは単なる簡単な例で、コンピュータプログラミングにおけるループの重要性を示しています。Javaでは、ループを使わずにこれを行う方法がのループの種類があります:forループ-、whileループとdo
whileループ。
Javaのwhileループの文法は以下の通りです: // while (testExpression) { }
whileループはどのように動作しますか?上記の文法では、括弧内のテスト
式(testExpression)はブール式です。テスト式(testExpression)の計算結果がtrueの場合、
whileループ内のステートメントが実行されます。
その後、テスト式(testExpression)を再評価します。
このプロセスは、テスト式がfalseと評価されるまで続行します。テスト式の計算結果がfalseの場合、
//:whileループ10プログラムは行を印刷します 回 public static void main(String[] args) { int i = 1class Loop { ; 10while (i <= ) { + System.out.println("行 " ++i; } } }
出力:
i); 1 i); 2 i); 3 i); 4 i); 5 i); 6 i); 7 i); 8 i); 9 i); 10
行 10上記の例では、テスト式(i <=10。
)。これは、iの値が以下より小さいかまたは等しいかを確認します1最初、この場所のiの値は
です。したがって、テスト式(testExpression)の計算結果はtrueです。そのため、whileループ内のprintステートメントを実行します。
++i;
。注意:whileループ内のステートメント1。以下のステートメントは、各迭代でiの値を増加させます10回目の迭代の後、iの値は11。その後、テスト式(i <= 10)がfalseの場合、合計whileループが終了します。
テスト式およびその評価方法に関する詳細な情報を知りたい場合は、以下のURLにアクセスしてくださいJavaの関係演算子およびJavaの論理演算子。
//编程以查找1到100と0の間の自然数の和です。 class AssignmentOperator { public static void main(String[] args) { int sum = 0, i = 100; while (i != 0) { sum +i; // sum = sum + i; --i; } System.out.println("Sum = " + sum); } }
出力:
Sum = 5050
ここでは、sum、iという2つの変数があります。それぞれの初期値は0と100。
whileループの各反復で、
sum変数に値を割り当てます:sum + i
iの値が減少します1
ループはiが0に等しいまで続きます。
1回目の繰り返し: i = 100, sum = 0+100 = 100, 同時に --i = 99 2回目の繰り返し: i = 99, sum = 100+99 = 199, 同時に --i = 98 3回目の繰り返し: i = 98, sum = 199+98 = 297, 同時に --i = 97 ... .. ... ... .. ... 99回目の繰り返し: i = 2, sum = 5047+2 = 5049, 同時に --i = 1 100回目の繰り返し: i = 1, sum = 5049+1 = 5050, 同時に --i = 0
do...whileループはwhileループに似ていますが、テスト式をチェックする前にループ本体を一度だけ実行するという重要な違いがあります。
これはdo...whileループの構文です。
do { // do...whileループ内のコード } while (testExpression);
do...whileループの本体が一度だけ実行されます(テスト式をチェックする前に)。これで、テスト式がチェックされます。
テスト式がtrueと評価されれば、ループ本体の内のコードを実行し、テスト式を再度計算します。このプロセスは、テスト式がfalseと評価されるまで続きます。
テスト式がfalseであれば、do..whileループは終了します。
以下のプログラムは、ユーザーが0を入力するまでにユーザーが入力した数字の合計を計算します。
ユーザーの入力を受け入れるために、Scannerオブジェクトを使用しました。Scannerの詳細情報を知りたい場合は、以下のURLにアクセスしてくださいJava Scanner。
import java.util.Scanner; class Sum { public static void main(String[] args) { Double number, sum = 0.0; //Scannerクラスのオブジェクトを作成します Scanner input = new Scanner(System.in); do { //ユーザーの入力を受け入れる System.out.print("数字を入力してください: "); number = input.nextDouble(); sum += number; } while (number != 0.0); //テスト表現 System.out.println("Sum = " + sum); } }
出力:
数字を入力してください: 2.5 数字を入力してください: 23.3 数字を入力してください: -4.2 数字を入力してください: 3.4 数字を入力してください: 0 Sum = 25.0
ループを使用する際には、常に注意を払う必要があります。なぜなら、テスト式を誤って設定してfalseにならないようにすると、whileとdo ... whileループは永遠に実行し続ける可能性があるからです。
これが無限whileとdo...whileループと呼ばれるものです。例えば、
//無限whileループ while (true) { //whileループの主体 }
もう一つの例を示す
//無限whileループ int i = 100; while (i == 100) { System.out.print("Hey!"); }
無限do...whileループの動作はwhileループと似ている。