for문은 굉장히 많이 쓰이기 때문에 연습을 확실히 해야겠다.
보통 for문은 1~3개까지는 중첩해서 쓰이기도하는데, 그 이상은 웬만하면 개발자도 사람인지라 더 간단한 방법으로 처리한다고 한다.
바로 예제를 풀어보자.
1일차 ~ 3일차의 1교시~8교시를 나타내시오. (ex. 1일차 1교시, 1일차 2교시, ..., 3일차 8교시)
public class For1 {
public static void main(String[] args) {
for(int day=1; day<=3; day++) {
for(int hour=1; hour<=8; hour++) {
System.out.println(day + "일차 " + hour + "교시");
}
}
System.out.println();
}
}
구구단을 출력하시오. (2x1=2, ... 9x9=81)
public class For2 {
public static void main(String[] args) {
for(int dan=2; dan<=9; dan++) {
for(int z=1; z<=9; z++) {
System.out.println(dan + "x" + z + "=" + (dan*z));
}
System.out.println();
}
}
}
구구단을 5x5=25까지만 출력하시오. (2x1=2, 2x2=4,.... 5x5=25)
break문을 활용하여 풀 수 있다.
Label을 이용한 해결방법도 배웠는데 두가지 같이 구현해보겠다.
일반적인방법
public class For3 {
public static void main(String[] args) {
for(int dan=2; dan<=9; dan++) {
for(int z=2; z<=9; z++) {
System.out.println(dan + "x" + z + "=" + (dan*z));
//5x5=25까지 출력되고 for문이 중지된다.
if(dan==5 && z==5) {
break;
}
//System.out.println(dan + "x" + z + "=" + (dan*z));
// 여기서 출력하면 5x4까지 된다.
}
}
}
}
Label을 이용한 방법
public class For4 {
public static void main(String[] args) {
outer : for(int dan=2; dan<=9; dan++) {
for(int z = 1; z<=9; z++) {
System.out.println(dan + "x" + z + "=" + (dan*z));
if(dan == 5 && z == 5) {
break outer;
}
}
}
}
}
outer를 첨가하여주고 break outer;를 해주면 된다.
꽤나 간편하고 자주쓰일 것 같으니 기억해두자.
구구단을 출력하시오. ( 2x1=2, 3x1=3, 4x1=4, ... 9x1=9 그 다음 줄 2x2=4...)
이번엔 좀 전에 구구단을 구현했던 방법과 조금 다른 방법이다.
JAVA에서 구구단이 구현되는 원리를 잘 생각하다보니 해결할 수 있었다.
public class For5 {
public static void main(String[] args) {
for(int a=1; a<=9; a++) {
for(int b=2; b<=9; b++) {
System.out.print(b+ "x" + a+ "=" + (b*a) + "\t");
// 라인을 바꿔주면 안되니까 print로한다.
// "\t"를 해주면 서로의 간격을 맞출 수 있다.
}
System.out.println(); // 실행
}
}
/*
2x1=2 3x1=3 4x1=4 5x1=5 6x1=6 7x1=7 8x1=8 9x1=9
2x2=4 3x2=6 4x2=8 5x2=10 6x2=12 7x2=14 8x2=16 9x2=18
2x3=6 3x3=9 4x3=12 5x3=15 6x3=18 7x3=21 8x3=24 9x3=27
2x4=8 3x4=12 4x4=16 5x4=20 6x4=24 7x4=28 8x4=32 9x4=36
2x5=10 3x5=15 4x5=20 5x5=25 6x5=30 7x5=35 8x5=40 9x5=45
2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 7x6=42 8x6=48 9x6=54
2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 8x7=56 9x7=63
2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 9x8=72
2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
*/