スポンサーサイト





上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

continue文





continue文はfor、while、do whileにおいてその後の処理をスキップさせ再び繰り返し処理の初めから実行させたい時に使用します。

「処理をスキップ」というのが分かりにくいと思うので、簡単なプログラムを考えました。

昔(?)、世界のナベアツという人のギャグで「1から30までのうち、3の倍数でバカになります」というのがありましたが、今回のプログラムは、1から30までの数字のうち3の倍数をスキップするというものです。



public class Sample
{
public static void main(String args[]){
for (int i = 1; i <=30; i++){
if (i % 3 == 0){
continue;
}

System.out.println(i);
}
}

}



では解説します。


まず、for文でiが1から30まで繰り返しです。

で、if文の中身ですが、
  i % 3 == 0
つまりiを3で割った余りが0だったら(つまり3の倍数だったら)、
  continue;
つまり処理をすっ飛ばしてはじめに戻るということです。

continueとは続けるという意味なので、「私はいいからお先にどうぞ」というニュアンスではないでしょうか(私はそう理解しています)。



では、同じ処理をwhile文を使って書いてみましょう。



public class Sample
{
public static void main(String args[]){
int i=0; //1

while (i<30){ //2
i++; //3
if(i%3==0){ //4
continue;
}

System.out.println(i); //5
}
}
}



処理の流れを解説します。

まず、//1 でiを0に設定しました。for文のときにiの初期値を1にしたのに、今回は0を初期値にしたのには深い理由があります。

//2でwhile文の導入です。iは30に満たない数字まで繰り返すことにしました。

//3でiに1を加えました。これでiは1から30まで繰り返されることになります。iの初期値が0である理由は、ここで1を加える操作をしたからです。

while (i<30){} では、iが29までしか繰り返さないように見えますが、i++の操作でiは1から30まで繰り返されることになります。

//4で3の倍数のときにスキップします。

//5で1から30までの数字のうち、3の倍数以外の整数が出力されます。

実際に、iに数字を当てはめてみましょう。

iが0のとき、//3でiは1になります。1は3の倍数ではないので、//4は飛ばされて//5で「1」が出力されました。

//3に戻って、iは2になります。2も3の倍数ではないので、「2」が出力されます。

//3に戻って、iは3になります。3は3の倍数なので、//4に引っかかって//3に戻ります。

以上がiが30になるまで繰り返されます。

このソースのキモは、i++; の位置です。while文のすぐ下以外の場所に置くと(おそらく)うまくいきません。ご自分で試してみてください。
関連記事

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://javamania.blog25.fc2.com/tb.php/21-36884cfd
  • 閉じるボタン
クラスライブラリ解説 目次
クラスライブラリとは
 ├ Java APIの調べ方
 ├ Objectクラスを調べる
 ├ ライブラリのインポート
 ├ 完全修飾クラス名を調べる
 ├ staticインポート
 ├ 外部ライブラリの利用

文字列を扱う
 ├ Stringとイミュータプル
 ├ StringBuilder 文字列の連結
 ├ toString()のオーバーライド
 ├ toXxCase() 大文字と小文字
 ├ compareTo() 値の比較
 ├ parseDouble() 文字を小数値に
 └ 文字列を抜き出す
 ├ char配列からString型へ変換
 ├ 空白文字の除去

日付を扱う
 ├ Calendar 現在の日付
 ├ Date 日付の表示

数値演算を扱う
 ├ round() 切上・切捨・四捨五入
 ├ BigDecimal
 ├ sqrt(),pow() 累乗と平方根
 ├ BigInteger
 ├ int型の最大値・最小値
 ├ random() 乱数作成

ファイルを扱う
 ├ ファイルの存在確認
 ├ ファイルを作成
 ├ ファイルの削除
 ├ ファイルサイズを調べる

入出力ストリーム
 ├ ファイルを読み込む
 ├ 画像ファイルのコピー
 ├ 日本語の読み込みと書き出し
 ├ バッファ入出力
 ├ データ型フリーの出力ストリーム
 ├ getBytes()メソッド

書式つき入出力
 ├ 書式を指定して出力
 ├ 引数インデックス
 ├ 整数値のフォーマット
 ├ 小数値のフォーマット
 ├ 九九の表のフォーマット

例外処理
 ├ printStackTrace()
 ├ NullPointerException
 └ NumberFormatException
月別アーカイブ
カテゴリ
リンク
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。