반복문에서는 i 변수(iterate, 반복한다) 를 많이 사용
for( 초기식 ; 조건식 ; 증감식 ) {
//조건식이 참(true)일 동안 반복적으로 실행하는 영역
}
for( int i=0 ; i<5 ; i++ ) {
System.out.println("HI : " + i)
}
------------------------------------------------------
int i; //for문 밖에서 i의 값을 사용하기 위해 미리 선언
for( i=0 ; i<10 ; i++ ) {
System.out.println(i)
}
System.out.println("반복문이 종료된 이후 i 변수의 값 : " + i);
➡ i=10 / i의 값이 10까지 증가한 후 조건식 판별 결과 false이므로 출력을 안함
{} 코드 영역을 실행{} 영역 실행int sum=0;
sum = sum+1;
sum = sum+2;
sum = sum+3;
sum = sum+4;
sum = sum+5;
sum = sum+6;
sum = sum+7;
sum = sum+8;
sum = sum+9;
sum = sum+10;
💡 반복 패턴을 찾자!
for(int i=1 ; i<=10 ; i++) {
sum +=i
System.out.println("중간결과 : " + sum); //중간결과 확인 코드
System.out.println();
}
System.out.println("최종결과 : " + sum);
💡 변수로 만들 키워드 찾기
int money=10;
int total=0;
for(int day=0 ; day<15 ; day++) {
total += money;
money *=2;
}
System.out.println("저축한 총 금액 : " + total + "원+); //15일동안 저축한 금액
int total=0; //for문 밖에서 total 변수를 사용하기 위해 미리 선언
for(int day=0, money=0 ; day<15 ; day++, total+=money, money *=2)
System.out.println("저축한 총 금액 : " + total + "원");
for(int i=0 ; i<10 ; i++) { //i가 10보다 작을 동안 반복
if(i%2==0) { //만약 i를 2로 나눴을 때 나머지가 0이라면 다음 코드 출력
System.out.println("짝수 : " + i);
}
}
👉🏻 for문만으로도 같은 조건 출력 가능
for(int i=0 ; i<10 ; i+=2) {
System.out.println("짝수 : " + i);
}
for(int i=0 ; i<3 ; i++) {
for(int j=0 ; j<3 ; j++) {
System.out.println("i : " + i + ", j : " + j);
}
System.out.println("--------------"); //j 한바퀴 돌고 경계선 출력
}
💡 바깥쪽 for문으로 할 것과 안쪽 for문으로 할 것 정하기
for(int dan=2 ; dan<=9 ; dan++) {
for(int i=1 ; i<=9 ; i++) {
System.out.println(dan + " * " + i + " = " + dan*i);
}
System.out.println(); //한 단 출력하고 줄바꿈
}
초기식;
while( 조건식 ) {
//조건식이 참(true)일 때 반복 실행하는 영역
증감식;
}
for(int i=0 ; i<10 ; i++) {
System.out.println(i);
}
👇🏻
int i=0;
while(i<10) {
System.out.println(i);
i++
}
int dan=2;
while(dan<=9) {
int i=1;
while(i<=9) {
System.out.println(dan + " * " + i + " = " + dan*i);
i++
}
System.out.println(); //한 단 출력하고 줄바꿈
dan++
}
do {
//반복 수행하는 코드
} while( 조건식 );
do 키워드를 만나면 조건 검사없이 일단 {} 영역 코드를 실행, 이후에 while의 조건식 검사를 하고 true면 do부터 다시 반복 false면 중단
👉🏻 최초 1회는 무조건 실행하고 다음부터 조건에 따라 반복 결정
do {
System.out.println("HIHI");
} while(false);
➡ HIHI 한 번 출력
💡 do로 먼저 실행되어야 할 사항 정하기
Scanner sc = new Scanner(System.in);
int num;
do {
System.out.print("Input Number(종료 = 99) : ");
num = sc.nextInt();
System.out.println("입력한 값 : " + input);
} while(num!=99);
➡ num의 값이 99가 아닐동안 do 계속 실행
반복문 또는 switch문에서 사용
for(int i=0 ; i<5; i++) {
for(int j=0; j<5; j++) {
if(i>=2) {
break; //➡ break는 반복문에서만 사용되므로 if에 영향x j for문을 멈춤
}
System.out.println("i : " + i + ", j : " + j);
}
}
➡ j가 0, 1일 때만 출력
💡 break 걸 조건
Scanner sc = new Scanner(System.in);
int num;
while(true) {
System.out.print("Input Number(종료 = 99) : ");
num = sc.nextInt();
System.out.println("입력한 값 : " + input);
if(num==99) {
break;
}
}
OuterLoop: 👉🏻 for문에 이름을 붙여줌. 레이블 된 반복문
for(int i=0;i<5;i++) {
InnerLoop:
for(int j=0;j<5;j++) {
if(j>=2) {
break; //👉🏻 가까운 InnerLoop 중단
break OuterLoop; //👉🏻 레이블 된 OuterLoop 중단
}
System.out.println("i : " + i + ", j : " + j);
}
System.out.println();
}
반복문에서만 사용할 수 있는 제어문
{} 남은 부분을 1번 건너뛰고 다음 반복을 수행for(int i=0; i<10; i++) {
if(i%2 == 0) { //i가 짝수면 건너뛰기
continue;
}
System.out.println(i);
}
➡ 홀수만 출력
비교대상과 같은 값으로 지정한 case구문의 위치부터 아래쪽 코드를 전부 실행 ➡ 조건문으로 분류하기도 함
switch( 비교대상 ) {
case 비교값1:
case 비교값2:
case 비교값3:
...
default:
}
int score = 88; //점수
<if문>
if(score>=90) {
System.out.println("A등급");
} else if(score >=80) {
System.out.println("B등급");
} else if(score >=70) {
System.out.println("C등급");
} else if(score >=60) {
System.out.println("D등급");
} else {
System.out.println("F등급");
}
--------------------------------------
<switch문>
switch(score/10) { ➡ score를 10으로 나누면 n0점대 대로 정수 n으로 값 판단 가능
case 10:
System.out.println("A+등급");
break;
case 9:
System.out.println("A등급");
break;
case 8:
System.out.println("B등급");
break;
case 7:
System.out.println("C등급");
break;
case 6:
System.out.println("D등급");
break;
default:
System.out.println("F등급");
}
정수로 표현 가능한 것만 switch의 비교대상이 될 수 있음
char alpha = 'B';
switch(alpha) {
case 'A':
System.out.println("A입니다");
break;
case 'B':
System.out.println("B입니다");
break;
}
===============================
M e n u
===============================
1. Hello World 출력
2. 이름 출력
3. 성별 출력
4. 종료
===============================>> _
System.out.println("===============================");
System.out.println(" M e n u");
System.out.println("===============================");
System.out.println(" 1. Hello World 출력");
System.out.println(" 2. 이름 출력");
System.out.println(" 3. 성별 출력");
System.out.println(" 4. 종료");
System.out.println("===============================");
System.out.print("\t>>");
Scanner sc = new Scanner(System.in);
int menu = sc.nextInt();
switch(menu) {
case 1:
System.out.println("Hello World");
break;
case 2:
System.out.println("Name");
break;
case 3:
System.out.println("Gender");
break;
case 4:
System.out.println("종료되었습니다.");
break;
default:
System.out.println("잘못입력하셨습니다");
}
int menu; 👉🏻 do문 밖에서 menu를 사용하기 위해 먼저 선언
do {
System.out.println("===============================");
System.out.println(" M e n u");
System.out.println("===============================");
System.out.println(" 1. Hello World 출력");
System.out.println(" 2. 이름 출력");
System.out.println(" 3. 성별 출력");
System.out.println(" 4. 종료");
System.out.println("===============================");
System.out.print("\t>>");
Scanner sc = new Scanner(System.in);
menu = sc.nextInt();
System.out.print("\t>>"); //출력부분 가독성이 좋게 추가해줌
switch(menu) {
case 1:
System.out.println("Hello World");
break;
case 2:
System.out.println("Name");
break;
case 3:
System.out.println("Gender");
break;
case 4:
System.out.println("종료되었습니다.");
break;
default:
System.out.println("잘못입력하셨습니다. 다시 입력해주세요.");
}
} while (menu!=4);