多重ループで出力をする場合は、改行のタイミングも重要です。
「多重ループの基本」では特に言及しませんでしたが、出力した時に見やすいようなタイミングで改行をしていました。
下記は「多重ループの基本」の前半でも紹介した「九九の1~5の段の計算を出力する」プログラムです。
九九の計算(C)
#include <stdio.h>
int main(void){
int i, j;
for(i=1; i<=5; i++){
for(j=1; j<=9; j++){
printf("%d×%d=%d ",i,j,i*j);
}
printf("\n");
}
return 0;
}
九九の計算(Java)
public class Kuku {
public static void main(String[] args) {
for(int i=1; i<=5; i++){
for(int j=1; j<=9; j++){
System.out.print(
i+"×"+j+"="+(i*j)+" ");
}
System.out.println();
}
}
}
出力結果
1×1=1 1×2=2 1×3=3 1×4=4 1×5=5 1×6=6 1×7=7 1×8=8 1×9=9
2×1=2 2×2=4 2×3=6 2×4=8 2×5=10 2×6=12 2×7=14 2×8=16 2×9=18
3×1=3 3×2=6 3×3=9 3×4=12 3×5=15 3×6=18 3×7=21 3×8=24 3×9=27
4×1=4 4×2=8 4×3=12 4×4=16 4×5=20 4×6=24 4×7=28 4×8=32 4×9=36
5×1=5 5×2=10 5×3=15 5×4=20 5×5=25 5×6=30 5×7=35 5×8=40 5×9=45
このプログラムでは、九九の各段の終わりで改行しています。各段の区切りが分かるため、改行せずに出力するよりも見やすいですね。
では、どのタイミングで改行しているのかですが、難しく考える必要は全くありません。
このプログラムでは、外側のループ(i)が九九の各段を表し、各段の計算を1行ごとに出力しています。
各段の最後に改行したいのですから、外側のループの最後(内側のループが終わった後)に改行の処理を入れればよいのです。
(Cでは「printf("\n");」、Javaでは「System.out.println();」の部分)
外側のループを「行」と考えれば、簡単に良いタイミングで改行できるというわけですね。
この改行を利用して、今度は文字(アスタリスク:*)で図形を描いてみます。
下記は「2つの自然数 a , bを入力後、『*』で縦a個 × 横b個の長方形を描く」プログラムです。
長方形の描画(C)
#include <stdio.h>
int main(void){
int i, j, a, b;
printf("縦の長さ:");
scanf("%d", &a);
printf("横の長さ:");
scanf("%d", &b);
for(i=0; i<a; i++){
for(j=0; j<b; j++){
printf("*");
}
printf("\n");
}
return 0;
}
長方形の描画(Java)
import java.util.Scanner;
public class Rectangle {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a, b;
System.out.print("縦の長さ:");
a = sc.nextInt();
System.out.print("横の長さ:");
b = sc.nextInt();
for(int i=0; i<a; i++){
for(int j=0; j<b; j++){
System.out.print("*");
}
System.out.println();
}
}
}
出力結果(例)
縦の長さ:3
横の長さ:7
*******
*******
*******
縦の長さ=外側のループ(i)、横の長さ=内側のループ(j)となるので、簡単に描くことができます。
あなたもジンドゥーで無料ホームページを。 無料新規登録は https://jp.jimdo.com から