今回は、そのバリエーションについて学ぶ。
■while文■
while文 は2種類ある。
前々回、学習した、「while 文」の他に
「do - while文」というもの。
while文は、条件式を評価してから、ブロックを実行する。
判定結果が false の場合、一度もブロックが実行されない。
package blog;
public class Shopping {
// 所持金が足りる間は本を買い続けるプログラム
public static void main(String[] args) {
int money = 5000;
System.out.println("あなたは" + money + "持っています");
int price = 5500;
// 条件式は
// 「money が price 以下の間は」
while (price <= money) {
System.out.println(price + "円の本を買います");
// money -= price でも書けるけど、
// わかりづらいから業務ではやめたほうがいい
money = money - price;
System.out.println("残金は" + money + "円です");
}
}
}
一つ目の実行結果は、
price の値を 1980 円にしています。
二つ目は、money が足りていないので、何も実行されない。
do-while文は、ブロックを実行してから、条件式を評価する。
判定結果にかかわらず、最低一回は、ブロックを実行する。
package blog;
public class Shopping2 {
// 所持金が足りる間は本を買い続けるプログラム
public static void main(String[] args) {
int money = 5000;
System.out.println("所持金は" + money + "円です");
int price = 5500;
// 実行文
// 本を買って、所持金から値段分を引く
do {
System.out.println(price + "円の本を買います");
money = money - price;
System.out.println("残金は" + money + "円です");
// 条件式
// 所持金がお金よりも低かったら
} while (price <= money);
}
}
必ず、一度は実行されるので、実行結果2のように、
所持金が足りなくても、買い物をしてしまうので注意!!
do-while文は、それほど使わないので、あまり気にしなくてもいい。
■for文■
for文は、繰り返しの回数を指定するときに使う。
1,初期化処理
最初に一回だけ実行される文。
ここで使う変数をループ変数という。
変数名は、なんでもいいけど、通常は i など一文字にする。
すでに使用している変数名は使えない。(ブロック内では使える)
2,繰り返し条件
ブロックの内容を実行する前に評価され、このループを継続するか否かを判断する条件式
3,繰り返し時の処理
for文のブロックを最後まで処理した直後に、自動的に実行される文。
package blog;
public class Dog {
// 犬を数えるプログラム
public static void main(String[] args) {
// i が 95~105の間、ワンちゃんのカウントを続ける
for (int i = 95; i <= 105; i++) {
System.out.println(i + "匹ワンちゃん!!");
}
}
}
これは、非常に簡単な繰り返し文。
もう少し、複雑なコードを書ける。
■ネスト■
制御構造(条件分岐、繰り返し)は、その中に、別の制御構造を含めて、多重構造にできる。
その多重構造を ネスト という。
package blog;
public class MultiplexStructure {
// 9月末のジムに行く予定をだすプログラム
public static void main(String[] args) {
System.out.println("9月末は4日おきにジムに行きます");
// 21~30の間
for (int i = 21; i <= 30; i++) {
System.out.println("今日は9月" + i + "日です");
// i が 4 で割り切れるときは(割って、余りの数が出ない状態)
if (i % 4 == 0) {
System.out.println("ジムに行く日です");
}
}
}
}
■繰り返し文の中断■
繰り返し文は、途中で中断することが出来る。
二種類の中断方法がある。
break文
繰り返し自体を中断する文。
continue文
その周だけ中断し、次の周にいく文。
package blog;
public class Interruption {
public static void main(String[] args) {
// 複雑な条件でジムに行く日を出すプログラム
System.out.println("9月の予定を決める");
System.out.println("今月は、4日に一度ジムに行く");
System.out.println("12日と20日はお休み");
System.out.println("23日以降は、旅行でいない");
// 1~30 の間、繰り返す処理
for (int i = 1; i <= 30; i++) {
System.out.println("今日は9月" + i + "日です");
// 23日以降は、旅行でいないので、以降の処理を中断する
if (i == 23) {
break;
// 12日はお休みなので、処理を飛ばす
} else if (i == 12) {
continue;
// 20日はお休みなので、処理を飛ばす
} else if (i == 20) {
continue;
// 4日ごとにジムにいく
} else if (i % 4 == 0) {
System.out.println("ジムに行く日です");
}
}
}
}
この continue の使い方は、いまいちですね。
(例文がいまいちな仕上がりになってしまったので、もう少し勉強したい。)
ぱっとみて、わかりづらいコードは、業務では好まれないから、わかりやすいコードを書くことを目指すのがいいようです。
.png)









0 件のコメント:
コメントを投稿