2016.02.26
do~while文
はじめに
do~while文は、処理を繰り返すために使用します。継続条件式で指定した条件を満たしている間、処理が繰り返されます。同じように繰り返しを行うfor文がありますが、for文は主に繰り返す回数が決まっているときに使用し、回数が分からない場合はdo~while文またはwhile文を使用します。その一般的な書き方について説明します。
以下は、{ ~ }の波括弧で囲まれている範囲の全ての処理文を繰り返し実行する書き方です。
do {
処理文1
処理文2
:
while ( 継続条件式 );
Javaソースコード その1
DoWhileSample1.java
001 002 003 004 005 006 007 008 009 010 011 012 013
public class DoWhileSample1 { public static void main( String[] args ) { // 変数の宣言 int i; // 10回の繰り返し i = 1; do { System.out.println( "繰り返し回数:" + i ); ++ i; } while ( 10 >= i ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis DoWhileSample1.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac DoWhileSample1.java
実行
C:\talavax\javasample>java DoWhileSample1
出力結果
繰り返し回数:1 繰り返し回数:2 繰り返し回数:3 繰り返し回数:4 繰り返し回数:5 繰り返し回数:6 繰り返し回数:7 繰り返し回数:8 繰り返し回数:9 繰り返し回数:10
ここから、ソースコードを解説していきます、
003 004
// 変数の宣言 int i;
繰り返しに使う変数を宣言しています。
006 007 008 009 010 011
// 10回の繰り返し i = 1; do { System.out.println( "繰り返し回数:" + i ); ++ i; } while ( 10 >= i );
System.out.println( "繰り返し回数:" + i );は処理文で、繰り返し処理される文です。
この例では、処理文は2行ですが、{ ~ }の波括弧で囲まれている範囲の処理文を繰り返し実行することができます。
while文との違いは継続条件の判定のタイミングです。
while文は先頭で判定を行い、do~while文は最後に行います。よって、do~while文の場合は、必ず1回は記述した処理が実行されます。以下がそれを比較するJavaソースコードです。
Javaソースコード その2
DoWhileSample2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020
public class DoWhileSample2 { public static void main( String[] args ) { // 継続条件 boolean f = false; // do~while int counter1 = 0; do { ++ counter1; } while ( f ); // f=false System.out.println( "カウンタ(do~while)=" + counter1 ); // while int counter2 = 0; while( f ) { // f=false ++ counter2; } System.out.println( "カウンタ(while)=" + counter2 ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis DoWhileSample2.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac DoWhileSample2.java
実行
C:\talavax\javasample>java DoWhileSample2
出力結果
カウンタ(do~while)=1 カウンタ(while)=0
do~while文のカウンタ(do~while)は1で、while文のカウンタ(while)は0となります。do~while文とwhile文の継続条件をどちらもfalseにしていますが、do~while文の方は、処理の後に継続するかの判定が行われるため、カウンターに1が足されていることがわかります。
以上です。