스포츠마케터의 초보 개발자 도전기
JAVA study 04 본문
1. 다중 For문
예제 포함
package ex1_multi_for;
public class Ex1_multiFor {
public static void main(String[] args) {
// 다중for문 : for문안에 for문이 포함되어 있는 경우
// 1 2 3
// 1 2 3
for (int i = 1; i <= 2; i++) { // outer, y(행)
for (int j = 1; j <= 3; j++) { // inner, x(축)
System.out.print(j + " ");
} // inner
System.out.println(); // 줄바꿈
} // outer
System.out.println("====================================");
// 0 1 2 3 4
// 0 1 2 3 4
// 0 1 2 3 4
// 0 1 2 3 4
for (int i = 1; i <= 4; i++) {
for (int j = 0; j <= 4; j++) {
System.out.print(j + " ");
}
System.out.println();
}
System.out.println("====================================");
// 5 4 3
// 5 4 3
// 5 4 3
for (int i = 1; i <= 3; i++) {
for (int j = 5; j >= 3; j--) {
System.out.print(j + " ");
}
System.out.println();
}
}// main
}
package ex1_multi_for;
public class Ex2_multiFor {
public static void main(String[] args) {
// 01 02 03 04
// 05 06 07 08
// 09 10 11 12
int num = 0;
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 4; j++) {
num++;
System.out.printf("%02d ", num);
}
System.out.println();
}
System.out.println("==============================");
int a = 0;
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 4; j++) {
System.out.printf("%02d ", ++a);
}
System.out.println();
}
System.out.println("==============================");
// A B C D
// E F G H
// I J K L
char ap = 'A';
for (int i = 1; i <= 3; i++) {
for (char j = 0; j <= 3; j++) {
System.out.printf("%c ", ap++);
}
System.out.println();
}
}// main
}
package ex1_multi_for;
public class Ex3_multiFor {
public static void main(String[] args) {
// 아래와 같이 홀수 라인에만 *을 출력하는 2중 for문을 완성
// * * * * *
// 1 2 3 4 5
// * * * * *
// 1 2 3 4 5
// * * * * *
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
if (i % 2 == 1) {
System.out.print("* ");
} else {
System.out.print(j + " ");
}
}
System.out.println();
}
}// main
}
package ex1_multi_for;
public class Ex4_multiFor {
public static void main(String[] args) {
// 01 02 03 04 05
// 02 04 06 08 10
// 03 06 09 12 15
// 04 08 12 16 20
// 05 10 15 20 25
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
System.out.printf("%02d ", i * j);
}
System.out.println();
}
System.out.println("===================================");
//*
//* *
//* * *
//* * * *
//* * * * *
for (int i = 1; i <= 5; i++) {
for (int j = 0; j < i; j++) {
System.out.print("* ");
}
System.out.println();
}
}// main
}
2.break
package ex2_break;
public class Ex1_break {
public static void main(String[] args) {
// break : 반복문 내에서 강제적으로 가장 가까운 반복문을 빠져나가는 키워드
for (int i = 1; i <= 2; i++) {
for (int j = 1; j <= 10; j++) {
if (j % 2 == 0) {
break;
//break 바로 아래쪽에는 어떠한 코드도 동작할 수 없다.
}
System.out.print(j + " ");
} // inner
System.out.println();
} // outer
}// main
}
package ex2_break;
public class Ex2_break {
public static void main(String[] args) {
for (int i = 1; i < 5; i--) {
if (i < 0) {
break;
}
System.out.println(i);
} // for
System.out.println("======================");
// ↓break 예외적 경우. 반복문 안에서 switch문에서 break가 사용되면 switch문만을 탈출하는 용도로 사용
for (int i = 0; i < 10; i++) {
switch (i) {
case 0:
System.out.println("i am 0");
break;
case 1:
System.out.println("i am 1");
break;
case 2:
System.out.println("i am 2");
break;
}// switch
} // for
}// main
}
package ex2_break;
public class Ex3_break {
public static void main(String[] args) {
//1부터 10까지 반복하는 for문에서 5를 초과하는 첫번째 값을 출력하고 for문을 종료
for (int i = 0; i <= 10; i++) {
if( i > 5) {
System.out.println(i);
break;
}
}
}//main
}
package ex2_break;
import java.util.Scanner;
public class Ex4_break {
public static void main(String[] args) {
//변수 n을 정수를 입력받아
//1부터 n까지의 합을 구하되, 합이 20을 넘어가면 반복을 종료
Scanner scn = new Scanner(System.in);
System.out.print("정수를 하나 입력하세요 : ");
int n = scn.nextInt();
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
if ( sum > 20 ) {
System.out.println("합이 20을 넘어 종료합니다.");
break;
}//if
}//for
System.out.println(sum);
}//main
}
예제1. for문을 사용한 구구단
package ex3_work;
public class Ex1_multiFor_gugudan {
public static void main(String[] args) {
//2중 for 문을 사용하여 2~9단까지를 모두 출력
//----------------------------------
// 2 X 1 = 2 3 X 1 = 3 ...... 9 X 1 = 9
// .......................................
// 2 X 9 = 18 3 X 9 = 27 ..... 9 X 9 = 81
for (int i = 1; i <= 9; i++) {
for (int j = 2; j <= 9; j++) {
System.out.printf("%d X %d = %d ", j, i, i * j);
}
System.out.println();
}
}//main
}
예제2. 수열만들기
package ex3_work;
public class Ex2_multiFor_number {
public static void main(String[] args) {
// 2중 for문을 사용하여 아래의 결과를 완성하시오.
// --------------------------------------
// 1 2 3 4 5 6 7 8 9 10
// 2 3 4 5 6 7 8 9 10 1
// 3 4 5 6 7 8 9 10 1 2
// ....................
// 10 1 2 3 4 5 6 7 8 9
for (int i = 0; i < 10; i++) {
for (int j = 1; j <= 10; j++) {
if (i + j > 10) {
System.out.print((i + j) - 10 + " ");
} else {
System.out.print(j + i + " ");
}
} // inner
System.out.println();
} // outer
System.out.println("====================================");
//teacher code
for (int i = 1; i <= 10; i++) {
for (int j = 0; j < 10; j++) {
int num = i + j;
if ( num > 10) {
num -= 10;
}
System.out.print( num + " ");
} // inner
System.out.println();
} // outer
}// main
}
예제3. 별트리 만들기
package ex3_work;
public class Ex3_mutilFor_star {
public static void main(String[] args) {
//2중 for문을 가지고 아래의 결과를 완성하시오.
// * //414
// * * * //333
// * * * * * //252
// * * * * * * * //171
//* * * * * * * * * //090
for(int i = 5; i >= 1; i--) {
for(int j = 0; j <= 10; j++) {
if (j >= i && j <= 10 - i) {
System.out.print("*");
} else {
System.out.print(" ");
}
}//inner
System.out.println();
}//outer
System.out.println("=======================");
//teacher code
for(int i = 0; i < 5; i++) {
for ( int j = 0; j < 5 + i; j++) {
if (i + j > 3) {
System.out.print("* ");
} else {
System.out.print(" ");
}
}//inner
System.out.println();
}//outer
System.out.println("=======================");
for(int i = 1; i <= 9; i += 2) {
for(int j = 9; j > i; j -= 2) {
System.out.print(" ");
}//inner
for(int j = 0; j < i; j++) {
System.out.print("*");
}
System.out.println();
}//outer
System.out.println("=======================");
//거꾸로
for(int i = 0; i <= 5; i++) {
for(int j = 0; j <= 10; j++) {
if (j >= i && j <= 10 - i) {
System.out.print("*");
} else {
System.out.print(" ");
}
}//inner
System.out.println();
}//outer
System.out.println("=======================");
//다이아몬드 모양
for(int i = 0; i < 5; i++) {
for ( int j = 0; j < 5 + i; j++) {
if (i + j > 3) {
System.out.print("* ");
} else {
System.out.print(" ");
}
}//inner
System.out.println();
}//outer
for(int i = 3; i >= 0; i--) {
for (int j = 0; j < 5 + i; j++) {
if (i + j > 3 ) {
System.out.print("* ");
} else {
System.out.print(" ");
}
}//inner
System.out.println();
}//outer
}//main
}
예제4. For문, SWAP을 이용해서 피보나치수열 만들기
package ex_work;
import java.util.Scanner;
public class Ex_work {
public static void main(String[] args) {
System.out.print("정수하나를 입력하세요 : ");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int n1 = 0;
int n2 = 1;
System.out.print(n1+" "+n2); //피보나치수열 1,2번째에서는 특별한 규칙을 적용할 수 없어서 먼저 숫자 2개 출력
System.out.print(n1 + " " + n2);
for (int i = 1; i <= num - 2; ++i ) {
n3 = n1 + n2;
System.out.print(" " + n3);
n1 = n2;
n2 = n3;
}
System.out.println();
System.out.println("===================");
// teacher code
int num1 = 1;
int num2 = 0;
int num3 = 0;
System.out.println("출력갯수 : ");
int cnt = sc.nextInt();
for(int i = 0; i < cnt; i++) {
// swap 코드 ↓
num2 = num3;
num3 = num1;
num1 = num2 + num3;
System.out.print(num3 + " ");
}
}//main
}
'develop > JAVA' 카테고리의 다른 글
JAVA study 06 (0) | 2024.03.05 |
---|---|
JAVA study 05 (0) | 2024.03.05 |
JAVA study 03 (1) | 2024.03.05 |
JAVA study 02 (0) | 2024.03.05 |
JAVA study 01 (4) | 2024.03.05 |