조건식의 결과에 따라 블록 실행 여부가 결정됨. 조건식에는 true/false 산출할 수 있는 연산식이나 boolean타입 변수. if ( 조건식 ){ 실행문A, B, C, ... }실행문Z 조건식이 true일 경우 실행할 문장이 하나라면, 중괄호 생략 가능.
if - else문
조건식의 결과에 따라 실행 블록을 선택. if ( 조건식 ){ 실행문A }else{ 실행문B }실행문C
if - else if - else문
조건문이 여러개인 if문. else if문의 수는 제한이 없음. 여러 개의 조건식 중 true가 되는 블록만 실행한 후 전체 if문을 벗어남. if ( 조건식 ){ 실행문A }else if{ 실행문B }else{ 실행문C }실행문D
package sec01.exam03;
public class IfElseIfElseExample {
public static void main(String[] args) {
int score = 75;
if (score>=90) {
System.out.println("점수가 90~100 입니다.");
System.out.println("등급은 A 입니다.");
} else if (score>=80) {
System.out.println("점수가 80~89 입니다.");
System.out.println("등급은 B 입니다.");
} else if (score>=70) {
System.out.println("점수가 70~79 입니다.");
System.out.println("등급은 C 입니다.");
} else{
System.out.println("점수가 70 미만입니다.");
System.out.println("등급은 D 입니다.");
}
}
}
실행결과
+) 난수 생성
Math.random() 메소드 0.0 <= Math.random() <1.0 인, double 타입의 난수 하나 리턴함. 이를 이용하면, 0~9의 난수 생성 = (int) (Math.random()10) 1~10의 난수 생성= (int) (Math.random()10) + 1 ∴a부터 시작하는 n개의 정수 중 랜덤:(int) (Math.random() * n) + a 주사위 번호 랜덤 생성
package sec01.exam04;
public class IfDiceExample {
public static void main(String[] args) {
int num=(int)(Math.random()*6)+1;
if (num==1) {
System.out.println("1번이 나왔습니다.");
} else if (num==2) {
System.out.println("2번이 나왔습니다.");
} else if (num==3) {
System.out.println("3번이 나왔습니다.");
} else if (num==4) {
System.out.println("4번이 나왔습니다.");
} else if (num==5) {
System.out.println("5번이 나왔습니다.");
}else {
System.out.println("6번이 나왔습니다.");
}
}
}
실행결과ex)
switch문
조건 제어문. 변수가 어떤 값을 갖느냐에 따라 실행문이 선택됨. 만약 switch문의 괄호 안의 변수 값과 동일한 값을 갖는 case가 없다면 default로 가서 실행문을 실행함. (생략가능) case끝의 break : 다음 case를 실행하지 않고 switch문 탈출함. 없다면 다음 case가 값에 상관없이 연달아서 실행됨. 위의 주사위 예제를 switch문으로
package sec01.exam05;
public class SwitchExample {
public static void main(String[] args) {
int num=(int)(Math.random()+1);
switch(num) {
case 1:
System.out.println("1번이 나왔습니다.");
break;
case 2:
System.out.println("2번이 나왔습니다.");
break;
case 3:
System.out.println("3번이 나왔습니다.");
break;
case 4:
System.out.println("4번이 나왔습니다.");
break;
case 5:
System.out.println("5번이 나왔습니다.");
break;
default:
System.out.println("6번이 나왔습니다.");
break;
}
}
}
실행결과
char타입 switch문
package sec01.exam07;
public class SwitchCharExample {
public static void main(String[] args) {
char grade='B';
switch(grade) {
case 'A':
case 'a':
System.out.println("우수 회원입니다.");
break;
case 'B':
case 'b':
System.out.println("일반 회원입니다.");
break;
default:
System.out.println("손님입니다.");
}
}
}
실행결과
String 타입 switch문
package sec01.exam08;
public class SwitchStringExample {
public static void main(String[] args) {
String position ="과장";
switch(position) {
case "부장":
System.out.println("700만원");
break;
case "과장":
System.out.println("500만원");
break;
default:
System.out.println("300만원");
}
}
}
실행결과
4-2. 반복문 : for문, while문, do-while문
반복문 : 어떤 작업이 반복적으로 실행되도록 할 때 사용. 코드가 간결해져 개발 시간을 줄이고, 에러 확률도 줄여줌. 루핑 : 제어문블록 실행 완료 후 제어문 처음으로 다시 되돌아가 반복 실행.
for문
주로 반복 횟수를 알고 있을 때 사용. for문을 이용하여 1~100까지의 정수 합
package sec02.exam03;
public class ForSumFrom1To100Example2 {
public static void main(String[] args) {
int sum=0;
int i=0;
for(i=1; i<=100; i++) {
sum+=i;
}
System.out.println("1~"+ (i-1) + " 합: " + sum);
}
}
실행결과
0.0부터 1.0까지 0.1씩 키우는 float 합
package sec02.exam04;
public class ForFloatCounterExample {
public static void main(String[] args) {
for(float x=0.1f; x<=1.0f; x+=0.1f) {
System.out.println(x);
}
}
}
코드를 봤을 때는 10번 반복할 것 같지만, 실제 더하는 0.1f값은 0.1보다 약간 큰 수이므로 9번만 반복한다. 실행결과
중첩 for문
for문 안에 for문을 내포. 구구단
package sec02.exam05;
public class ForMultiplicationTableExample {
public static void main(String[] args) {
for(int m=2;m<=9;m++) {
System.out.println("*** " + m +"단 ***");
for(int n=1;n<=9;n++) {
System.out.println(m + " x " + n + " = " + (m*n));
}
System.out.println("-------------");
}
}
}
실행결과ex)
while문
주로 조건에 따라 반복할 때 사용. 조건식이 true일 경우 반복하며, 조건식에는 비교/논리 연산식이 주로 온다. while문을 이용하여 1~100까지의 정수 합
package sec02.exam07;
public class WhileSumFrom1To100Example {
public static void main(String[] args) {
int sum=0;
int i=1;
while(i<=100) {
sum += i;
i++;
}
System.out.println("1~"+ (i-1) + " 합: " + sum);
}
}
실행결과
+)무한루프 while( true ){ 실행문; }
do-while문
조건을 나중에 검사하는 while문. 블록 내부의 실행문을 우선 실행한 후 반복 실행을 계속할지 결정. do{실행문;}while(조건식);
break문
반복문의 실행을 중지할 때 사용. 대개 if문과 같이 사용됨. 반복문이 중첩되어 있는 경우, -가장 가까운 반복문만 종료하고 바깥쪽 반복문은 종료하지 않음. -바깥 반복문도 종료: 바깥쪽 반복문에 이름을 붙인 후, 'break 이름;'
package sec02.exam09;
public class BreakOutterExample {
public static void main(String[] args) {
Outter: for(char upper='A'; upper<='Z'; upper++) {
for(char lower='a'; lower<='z';lower++) {
System.out.println(upper+"-"+lower);
if (lower=='g') {
break Outter;
}
}
}
System.out.println("프로그램 실행 종료");
}
}
실행결과
continue문
for, while, do-while문에서만 사용됨. continue문이 실행되면 for문의 증감식, while/do-while문의 조건식으로 이동. 반복문을 종료하지 않고 계속 반복을 수행. 대개 if문과 같이 사용됨.
예제.1~10까지 짝수만 출력
package sec02.exam10;
public class ContinueExample {
public static void main(String[] args) {
for(int i=1;i<=10;i++) {
if(i%2 != 0) {
continue;
}
System.out.println(i);
}
}
}