728x90
if문
조건식의 결과에 따라 중괄호 { } 블록을 실행할지 여부를 결정할 때 사용
조건식에는 true 또는 false값을 산출할 수 있는 연산식 또는 boolean 변수가 온다.
조건식이 true이면 블록을 실행하고, false이면 블록을 실행하지 않는다.
조건식이 true가 되었을때 실행문이 하나인 경우 중괄호 { }를 해주지 않아도 되지만, 코드가 명확하게 보이기 위해 중괄호 { } 를 해주는 것이 좋음
예제)
package sec02.exam01_if;
public class IfExample
{
public static void main(String[] args)
{
int score = 93;
if( score >= 90) //score가 90과 같거나 크면
{
System.out.println("점수가 90보다 큽니다.");
System.out.println("A입니다.");
}
if( score>=60 && score<90 ) //score가 90보다 작고 80과 같거나 크면
{
System.out.println("점수가 60보다 큽니다.");
System.out.println("B입니다.");
}
if( score <60) //score가 80보다 작으면
{
System.out.println("점수가 60보다 작습니다.");
System.out.println("C입니다.");
}
}
}

if-else 문
조건식의 결과에 따라 실행 블록을 선택한다.
예제)
package sec02.exam01_if;
public class IfElseExample
{
public static void main(String[] args)
{
int score = 85;
if(score>=90) //score가 90과 같거나 크면
{
System.out.println("점수가 90보다 큽니다.");
}
else //그 외의 경우
{
System.out.println("점수가 90보다 작습니다.");
}
}
}

if-else if -else 문
복수의 조건식을 두어 조건식을 만족하는 블록만 실행된다.
예제)
package sec02.exam01_if;
public class IfElseIfElseExample
{
public static void main(String[] args)
{
int score = 75;
if(score>=90)
{
System.out.println("점수가 100~90입니다.");
System.out.println("등급이 A 입니다.");
}
else if(score>=80)
{
System.out.println("점수가 90~80입니다.");
System.out.println("등급이 B 입니다.");
}
else if(score>=70)
{
System.out.println("점수가 80~70입니다.");
System.out.println("등급이 C 입니다.");
}
else if(score>=60)
{
System.out.println("점수가 70~60입니다.");
System.out.println("등급이 D 입니다.");
}
else
{
System.out.println("점수가 60미만 입니다.");
System.out.println("등급이 E 입니다.");
}
}
}

package sec02.exam01_if;
public class IfDiceExaple
{
public static void main(String[] args)
{
//Math.random : 0<=Math.random()<1 의 실수가 랜덤으로 나옴
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번이 나왔습니다.");
}
}
}
랜덤값이기 때문에 매번 결과가 다르게 나옴


중첩 if문
예제)
package sec02.exam01_if;
public class IfNestedExample
{
public static void main(String[] args)
{
//81에서 100사이의 임의의 정수 반환
int score = (int)(Math.random()*20) + 81;
//0<= Math.random()<1
//Math.random()값에 *20을 하면
//0<= Math.random < 20 이 됨
//정수로 변환하면 0<= 1,2,3,4,5, ... , 19 < 20 이 되는데
//이값들에 81을 더하면 81<=82,83,...,100<101이 됨.
//따라서 81에서 100사이의 임의의 정수가 나옴
System.out.println("점수 : " + score);
String grade; //문자열을 저장할 변수 선언
if(score>=90) //score가 90이상이면
{
if(score>=95) //score가 95이상이면
{
grade = "A+";
}
else //score가 95이상이 아니면
{
grade = "A";
}
}
else //score가 90이상이 아니면
{
if(score>=85) //score가 85이상이면
{
grade = "B+";
}
else //score가 85이상이 아니면
{
grade = "B";
}
}
System.out.println("학점: " + grade);
}
}
랜덤한 값을 뽑기 때문에 실행마다 결과값이 바뀌게됨


switch문
변수나 연산식의 값에 따라 실행문을 선택할 때 사용
예제)
package sec02.exam02_switch;
public class SwitchExample
{
public static void main(String[] args)
{
//1부터 6사이의 임의의 정수를 반환
int num = (int)(Math.random()*6) + 1;
switch(num)
{
case 1: //1인경우
System.out.println("1번이 나왔습니다.");
break; //1인경우에 위의 글을 출력하고 전체 switch를 빠져나감
case 2: //2인경우
System.out.println("2번이 나왔습니다.");
break; //2인경우에 위의 글을 출력하고 전체 switch를 빠져나감
case 3: //3인경우
System.out.println("3번이 나왔습니다.");
break; //3인경우에 위의 글을 출력하고 전체 switch를 빠져나감
case 4: //4인경우
System.out.println("4번이 나왔습니다.");
break; //4인경우에 위의 글을 출력하고 전체 switch를 빠져나감
case 5: //5인경우
System.out.println("5번이 나왔습니다.");
break; //5인경우에 위의 글을 출력하고 전체 switch를 빠져나감
case 6: //6인경우
System.out.println("6번이 나왔습니다.");
break; //6인경우에 위의 글을 출력하고 전체 switch를 빠져나감
}
}
}
랜덤한 값을 뽑기 때문에 실행마다 결과값이 바뀌게됨


package sec02.exam02_switch;
public class SwitchNoBreakCaseExample
{
public static void main(String[] args)
{
int time = (int)(Math.random()*4) + 8;
// 0<= 1,2,3 <4
// 8<= 9,10,11 <12
// 8,9,10,11 값 중 랜덤
System.out.println("[현재 시간:" + time + "시]");
switch(time)
{
case 8:
System.out.println("출근합니다.");
case 9:
System.out.println("회의를합니다.");
case 10:
System.out.println("업무를 봅니다.");
default:
System.out.println("외근을 나갑니다.");
}
}
}
랜덤한 값을 뽑기 때문에 실행마다 결과값이 바뀌게됨
break가 없기 때문에 조건이 맞는 case부터 아래를 전부 실행하고 빠져나옴


package sec02.exam02_switch;
public class SwitchCharExample
{
public static void main(String[] args)
{
char grade = 'B';
//switch의 괄호안의 값은 정수타입만 가능 / Java7부터는 문자열도 가능하게 바뀜
switch(grade)
{
//grade에 대문자 소문자 상관없이 A만 들어가 있으면 "우수 회원입니다."를 출력하기 위해
case 'A':
case 'a':
System.out.println("우수 회원입니다.");
break;
//grade에 대문자 소문자 상관없이 B만 들어가 있으면 "일반 회원입니다."를 출력하기 위해
case 'B':
case 'b':
System.out.println("일반 회원입니다.");
break;
default:
System.out.println("손닙입니다.");
}
}
}

package sec02.exam02_switch;
public class SwitchStringExample
{
public static void main(String[] args)
{
String position = "과장";
//자바 7부터 문자열도 괄호에 넣을 수 있게 변경되었음
switch (position)
{
case "부장":
System.out.println("700만원");
break;
case "과장":
System.out.println("700만원");
break;
default:
System.out.println("300만원");
}
}
}

728x90
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] 데이터 타입 분류, 메모리 사용 영역 (0) | 2021.06.11 |
---|---|
[JAVA] 반복문(for문, while문, do-while문) (0) | 2021.06.10 |
[JAVA] 코드 실행 흐름 제어 (0) | 2021.06.10 |
[JAVA] 삼항 연산자 (0) | 2021.06.09 |
[JAVA] 이항연산자(2) -비교연산자, 논리연산자, 비트연산자, 대입연산자 (0) | 2021.06.09 |