// 반복문(for문)
for(초기값; 조건문; 증가값) or for(시작값; 끝값; 증가값) {
실행할 구문;
}
- 특정 코드를 개발자가 원하는 만큼 반복 실행한다.
a. for ~ for (int i = 1; i <=3; i++) {} > 대부분 사용
- i : 루프 변수★
- 무한루프 : 회전수를 미리 예측하기 힘든 경우에 사용
~ for (;;) {}
> 원래는 for (; true;) 인데 조건식을 생략하면 자동으로 true가 대입됨.
> 초기식, 증감식은 영향을 미치지 않음.
1. 초기식 실행
~ int i = 1;
2. 조건식 실행
2-1. true: 실행블럭을 실행한다.
2-2. false
~ i <= 3;
3. 실행문
~ System,out.println("Hello")
4. 증감식 실행
~ i++;
5. 조건을 만족할 때까지 2~4 반복
package ex01.sample03;
public class Ex03_1 {
public static void main(String[] args) {
for(int i = 0; i <5; i++) {
System.out.println("처음으로 공부하는 자바 프로그래밍");
}
}
}
\!Quiz - 5, 4, 3, 2, 1 순서대로 출력할 수 있게 위 코드 수정하기!
package ex01.sample03;
public class Ex03_1 {
public static void main(String[] args) {
for(int i = 5; i > 0; i--) {
System.out.printf("%d : 처음으로 공부하는 자바 프로그래밍\n", i);
}
}
}
**나에게 결정적인 오류 해결은 println을 printf로 바꾸는 것이었다.(대신 뒤에 개행문자 넣어주기)
!Quiz - 1부터 10까지의 합을 구하기!
- for문 사용하기
package ex01.sample03;
public class Ex03_2 {
//int sum; //클래스가 가지고 있는 변수: 멤버 필드
public static void main(String[] args) {
//1부터 10까지의 합을 구하는 프로그램을 작성
int sum; // 메서드가 가지고 있는 변수: 지역 변수
sum = 0;
for(int i = 1; i <11; i++) {
sum = sum + i;
}
System.out.printf("1부터 10까지의 합은 : %d\n", sum);
}
}
**
- 클래스가 가지고 있는 변수: 멤버 필드
~ 변수 초기화가 따로 필요 없음.(int는 자동으로 0)
- 메서드가 가지고 있는 변수: 지역 변수
~ 변수 초기화를 반드시 해줘야 함.
**
!Quiz - 1부터 입력값까지의 합을 구하기!
package ex01.sample03;
import java.util.Scanner;
public class Ex03_3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sum=0; // 메서드가 가지고 있는 변수: 지역 변수
int num;
System.out.printf("숫자 몇까지의 합을 구할 건지 입력해 주세요 : ");
num = sc.nextInt();
for(int i = 1; i <= num; i++) {
sum = sum + i;
}
System.out.printf("1부터 %d까지의 합은 : %d\n", num, sum);
}
}
package ex01.sample03;
import java.util.Scanner;
public class Ex03_4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int dan;
System.out.printf("원하는 구구단은 : ");
dan = sc.nextInt();
for(int i= 1; i <= 9; i++) {
System.out.printf("%d X %d = %d \n", dan, i, dan*i);
}
}
}
// 중첩 for문, nested for
- 2중 for문, 3중 for문 ... n중 for문으로 부름
package ex01.sample03;
import java.util.Scanner;
public class Ex03_4 {
public static void main(String[] args) {
for(int i = 2; i <=9; i++) {
for(int j = 1; j <=9; j++) {
System.out.printf("%d X %d = %d\n", i, j, i*j);
}
System.out.printf("\n");
}
}
}
package ex01.sample03;
import java.util.Scanner;
public class Ex03_4 {
public static void main(String[] args) {
for(int i = 1; i <=9; i++) {
for(int j = 2; j <=9; j++) {
System.out.printf("%5d X %d = %2d", j, i, j*i);
}
System.out.printf("\n");
}
}
}
//while문
- 조건을 만족하면 실행문을 실행한 뒤, 다시 조건을 확인 후 반복한다.
초기값;
while(조건문) {
실행할 구문;
증가값;
}
package ex01.sample01;
public class Ex01_1 {
public static void main(String[] args) {
int sum = 0;
int i = 1;
while(i <= 10) {
sum += i;
i++;
}
System.out.printf("1부터 10의 합은 : %d\n", sum);
}
}
//do-while문
- 최소 한 번은 실행문을 실행하고, 다시 조건을 확인 후 반복한다.
package com.test.java;
public class Ex33_while {
public static void main(String[] args) {
m2();
} //main
private static void m2() {
int num = 10;
while (num < 5) {
System.out.println(num);
num++;
}
System.out.println("while문 끝");
System.out.println();
do {
System.out.println(num);
num++;
} while(num < 5);
System.out.println("do while문 끝");
System.out.println("종료");
} //m2
}
// 향상된 for문, Enhanced for statement
- foreach문
- 집합을 가지고 루프를 돌릴 때 사용
- 배열의 요소를 순차적으로 탐색하는 for문
- 무조건 처음부터 끝까지 모두 가져와야 함.
package com.test.obj.type;
public class Ex69_Generic {
public static void main(String[] args) {
m2();
} //main
private static void m2() {
//향상된 for문
String[] list = { "강아지", "고양이", "병아리", "오병이", "송아지" };
for(int i = 0; i < list.length; i++) {
System.out.print(list[i] + "\t");
}
System.out.println();
for(String animal : list) {
System.out.print(animal + "\t");
}
System.out.println();
}
} //Main
'자바(JAVA)' 카테고리의 다른 글
[자바(Java)] String (1) | 2022.09.23 |
---|---|
[자바(Java)] 배열(Arrays) (0) | 2022.09.22 |
[자바(Java)] 제어문 - 조건문 (0) | 2022.09.22 |
[자바(Java)] package (0) | 2022.09.22 |
[자바(Java)] 객체 지향 언어 (0) | 2022.09.22 |