なんだかんだ続いている復習アウトプット。
自分で見直してて「言っている意味がわからん」となっては意味がないので、必要最低限シンプルにしようと思っているが、振り返ってみて訂正していると、これまた復習になっている。(と思う)
繰り返し繰り返し一歩筒ずつ前に進むしかない。
焦ると大体良いことなんてない。
繰り返し繰り返し・・・
お品書き
- 前回の分岐処理
- while文
- for文
◆繰り返しって?
前回、分岐処理編の構造化プログラミングで繰り返し処理の図を描いたので参考に。
◆while文
条件を満たす間ずっと処理を繰り返す文。
条件を満たさなくなったら抜ける。
while(条件式){
処理
}
みたいな感じ。
if文に似ている。
似て非なるものでwhile文はずっと繰り返す。
◆while文Sample
int i = 0 ; //iを初期化
while( i < 3 ){ //条件式を見て3より小さい
System.out.println("i = " + i );
i++
}
iを初期化
iが3より小さいか見る
0
インクリメントで0+1
条件式に戻って
iが3より小さいかみる
さっき+1したから今1
インクリメントで1+1
・
・
・
これを3になったら抜ける。
みたいな。
◆for文
for(式1 ; 条件式 ; 式2 ) {
処理
}
◆for文Sample
さっきのwhile文を修正したもの
for(int i = 0 ; i < 3 ; i++){
System.out.println("i = " + i );
}
for文の()内でiの初期化、3より大きいか、インクリメントで+1
3になったらぬける。
for文の中でiは処理が何回目かを数えるのに使われるのでカウンター変数と呼ぶ。
式1ではよくカウンター変数を準備します。
式2ではカウンター変数をインクリメントすることが多い。
配列の各要素に同じ処理をしたいときfor文が便利。
配列Sample
class Array{
public static void main (String[] args){
int [] score = new int[3];
score[0] = 80;
score[1] = 100;
score[2] = 90;
String[] name = {"大輔","湊丞","花帆"};
System.out.println(name[0] + "さん:" + score[0] + "点");
System.out.println(name[1] + "さん:" + score[1] + "点");
System.out.println(name[2] + "さん:" + score[2] + "点");
System.out.println("受験者数:" + score.length + "名"); //scoreの要素数を取得
}
}
配列編のサンプルでfor文を使ってみよう。
添え字の所をカウンター変数をいれて0~2をfor文で繰り返せないかなと考えた。
class Array{
public static void main (String[] args){
int [] score = new int[3];
score[0] = 80;
score[1] = 100;
score[2] = 90;
String[] name = {"大輔","湊丞","花帆"};
for( int i = 0 ; i < score.length ; i++){ //0番目から要素数の数だけ繰り返す
System.out.println(name[i] + "さん:" + score[i] + "点"); //[i]を0~2と変えていくことで3回出力される
}
System.out.println("受験者数:" + score.length + "名"); //scoreの要素数を取得
}
}
C:\Java\1>java Aaa
大輔さん:80点
湊丞さん:100点
花帆さん:90点
受験者数:3名
わたしはfor文の方が見やすい。
これも使い方を適宜考えて使おう。