for문


중첩for문

[출처]자바의 정석
실습을 해보자.
public static void main(String[] args) {
// 반복문 : 규칙적인 작업을 반복적으로 사용할 때(for, while, do while)
// for문과 while문은 동작 방식이 같다. (조건이 일치하지 않으면 실행이 안됨)
// do while문은 두방식과 조금 다름 (반드시 한번은 동작 하고 조건확인)
// for (1.초기화 ; 2.5.8.조건식; 4.7.증감연산) {
// 3.6.실행문 }
// 초기화 : 조건식이나 실행문에서 사용하는 변수를 초기화 처음 실행시 한번만 수행 / 생력가능
// 조건식 : 반복횟수를 결정하는 식 (true => 반복, false => 종료) / 생략가능
// 증감연산식 : 조건식에서 사용하는 변수가 증가 / 감소되어 반복횟수를 조절 /생략가능
// 1 ~ 10 까지 출력하는 예제
// 초기화 : 사용할 변수 (i) 1부터 => int i = 1;
// 조건식 : 변수가 10이 될 때 까지 => i <= 10 (1부터 10까지)
// 증감식 : 1씩 증가 i++
// 실행문 : i 출력
for (int i = 1; i <= 10; i++) {
System.out.print(i + " ");
}
System.out.println("\n--------------------");
// 10 ~ 1 까지 출력
for (int i = 10; i >= 1; i--) {
System.out.print(i + " ");
}
System.out.println("\n--------------------");
// 2 ~ 10 까지 2씩증가 (2의 배수 출력)
for (int i = 2; i <= 10; i += 2) {
System.out.print(i + " ");
}
System.out.println("\n--------------------");
// 지역변수의 범위 { 선언 소멸 }
// 1 ~ 10 까지 (짝수만 출력)
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
System.out.print(i + " ");
}
else {
System.out.print("홀수 ");
}
}
System.out.println("\n--------------------");
// 1 ~ 10 까지의 합계 (1 + 2 + 3 + 4 ...10)
int sum = 0;
for (int i = 1; i <= 10; i++) {
System.out.print((sum += i) + " ");
}
System.out.println("\n1 ~ 10 까지의 총 합은 : " + sum);
}
public static void main(String[] args) {
// 1 ~ 10 홀수의 합과 짝수의 합을 출력
int even = 0; // 짝수
int odd = 0; // 홀수
for (int i = 1; i <= 10; i++) {
if (i % 2 ==0) {
even += i;
}
else {
odd += i;
}
}
System.out.println("홀수의 합 : " + odd);
System.out.println("짝수의 합 : " + even);
// 오른쪽 삼각형
for (int i = 0; i < 5; i++) {
for (int j = 5; j > i + 1; j--) {
System.out.print(" ");
}
for (int k = 0; k <= i; k++) {
System.out.print("*");
}
System.out.println();
}
// 왼쪽 삼각형
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
public static void main(String[] args) {
// 구구단 2단 출력
// int num = 2;
// for (int i = 1; i <= 9; i++) {
// System.out.println(num + " x " + i + " = " + num*i);
// }
// 구구단 출력
for (int i = 2; i <= 9; i++) {
System.out.println(i + "단 출력!!");
for (int j = 1; j <= 9; j++) {
System.out.println(i + " x " + j + " = " + (i * j));
}
}
// 왼쪽 삼각형 별
for (int l = 0; l < 5; l++) {
for (int j = 0; j <= l; j++) {
System.out.print("★");
}
System.out.println();
}
System.out.println("-----------");
// 다이아몬드 별
for (int i = 0; i < 5; i++) {
for (int j = 5; j > i+1; j--) {
System.out.print(" ");
}
for (int k = 0; k <= i; k++) {
System.out.print("★");
}
for (int j = 0; j < i; j++) {
System.out.print("★");
}
System.out.println();
}
for (int i = 0; i < 4; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(" ");
}
for (int j = 4; j > i; j--) {
System.out.print("★");
}
for (int j = 3; j > i ; j--) {
System.out.print("★");
}
System.out.println();
}
}
public static void main(String[] args) {
/* num을 입력 받아 num의 약수를 출력
* 약수 : 나누어서 떨어지는 수
* 12의 약수 : 12/(1~12) = 나머지가 0이 되는 수(1, 2, 3, 4, 6, 12)
*/
Scanner scan = new Scanner(System.in);
System.out.println("정수를 입력해 주세요.");
int num = scan.nextInt();
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
System.out.print(i + " ");
}
}
scan.close();
}
public static void main(String[] args) {
/* 최대공약수 구하기(Greatest Common Divisor)
* 공약수 : 두 정수의 약수 중 공통적으로 있는 약수
* 최대 공약수 : 공약수 중 가장 큰 값
* 8, 12 의 공약수
* 8 : 1, 2, 4, 8
* 12 : 1, 2, 3, 4, 6, 12
* 최대 공약수 : 4
*/
Scanner scan = new Scanner(System.in);
System.out.println("첫 번째 정수를 입력 해주세요.");
int num1 = scan.nextInt();
System.out.println("두 번째 정수를 입력 해주세요.");
int num2 = scan.nextInt();
int gcd = 0;
for (int i = 1; i <= num1; i++) {
if (num1 % i == 0 && num2 % i == 0) {
gcd = i; // 공약수가 더 있다면 이전 값은 사라지고 뒤에 나오는(더 큰 공약수)를 저장
}
}
System.out.println(num1 + " 과(와) "+ num2 + "의 최대 공약수 : " + gcd);
System.out.println("------------------");
/* break : 반복문에서 조건이 맞다면 (반복문)을 빠져나오는 문구
* if문의 가장 가까운 for문만 벗어날수 있음
*/
for (int i = num1; ; i--) {
if (num1 % i == 0 && num2 % i == 0) {
System.out.println("두 수의 최대 공약수 : " + i);
break;
}
}
// break : 반복문에서 for문에 이름표를 붙여 (반복문)을 빠져나오는 문구
int i = 10;
a: for (;;) {
for (;;) {
for (;;) {
if (i == 10) {
i++;
break a; // 지정된 a: for문 까지 빠져 나갈 수 있음
}
}
}
}
scan.close();
}
public static void main(String[] args) {
/* 최소공배수 구하기(Least Common Multiple)
* 공배수 : 두 수의 정수에서 공통적으로 있는 배수
* 10 : 10, 20, 30, 40, 50....
* 15 : 15, 30, 45, 60, 75....
* 10, 15 최소공배수 : 30
*/
// num1 과 num2 를 입력받아 최소공배수 출력
// i * num
Scanner scan = new Scanner(System.in);
System.out.println("두 정수를 입력 하세요.");
int num1 = scan.nextInt();
int num2 = scan.nextInt();
for (int i = num1; ;i+=num1) {
if(num1 % i == 0 && num2 % i == 0) {
System.out.println(num1 + " 과(와) " + num2 + " 의 최소공배수 : " + i);
break;
}
}
scan.close();
}
public static void main(String[] args) {
/* 2 4 6 8 10
* 12 14 16 18 20
* 22 24 26 28 30
* 1 ~ 30까지 짝수만 출력
* 5개씩 한줄로 출력
*/
for (int i = 1; i <= 30; i++) {
if (i % 2 ==0) {
System.out.printf("%3d", i); // printf %d(정수) 3개로 출력해서 줄맞춤 가능
if (i % 10 == 0) {
System.out.println();
}
}
}
System.out.println();
System.out.println("-------------");
int j = 1;
while (j <= 30) {
if (j % 2 == 0) {
System.out.print(j + " ");
if (j % 10 == 0) {
System.out.println();
}
}
j++;
}
System.out.println();
System.out.println("-------------");
// 출력 구문
System.out.println("println : 줄바꿈이 있는 출력");
System.out.println("ptint : 줄바꿈이 없는 출력");
System.out.println("printf : 지시자를 통해서 값을 표현");
/* 서식 지정자를 통해 출력 데이터 서식 지정
* %n(\n 줄바꿈), %d(정수형), %f(실수형), %c(문자), %s(문자열)
* escape sequence
* \n(줄바꿈), \r(캐리지리턴), \t(탭)
*/
int num1 = 5, num2 = 3;
// 5 + 3 = 8
System.out.printf("%d + %d = %d%n", num1, num2 , num1 + num2);
double num3 = 5, num4 = 12;
System.out.printf("%.0f / %.0f = %.1f", num3, num4 , num3 / num4); // 실수형 자리수는 %.0f %.1f ...자리수 지정
}'Java 공부 기록' 카테고리의 다른 글
| 반복문(while, do while) (0) | 2023.06.06 |
|---|---|
| break문, continue문 (0) | 2023.06.06 |
| 조건문(switch문) (0) | 2023.06.06 |
| 조건문(if문) (0) | 2023.06.06 |
| TypeCasting(형변환) (0) | 2023.06.06 |