ConditionalStatement

기본 값 : 직접 초기화 하지 않았을 때 초기화 되는 값
메서드 밖에서 만드는 변수는 초기화 하지 않아도 기본값으로 초기화 됨
ex)

  • 참조형 타입 : null
  • boolean : false
  • char : '' (0)
  • 이외의 나머지 타입 : 0
int x;
System.out.println(x); //초기화를 하지 않고는 변수를 사용할 수 없음

쓰레기 값 : 메모리의 빈 공간에 변수를 만들고 사용하지 않으면 빈 공간인게 아니라 남아있음(더이상 사용하지 않는 공간)

🎁조건문

  • if문
  • switch문

🎁if문

  • if(조건식){ }
    조건식의 결과가 true이면 블럭 안의 문장을 수행함 (조건식 : 비교하는 내용)
  • else if(조건식){ }
    다수의 조건이 필요할 때 if뒤에 추가함
  • else{ }
    결과가 true인 조건식이 하나도 없는 경우를 위해 추가함 (가장 마지막에 붙여줌, 위의 조건식이 하나도 만족하지 않을 때 실행함)
//조건에 따라서 수행하고 말고를 결정함
int a = 1;
if(a ==1){
	System.out.println("조건식의 연산결과가 true이면 수행된다.");
}

if(a == 0){
	System.out.println("조건식의 연산결과가 false이면 수행되지 않는다.");
}


if(a == 1){
	System.out.println("a가 1인 경우에 하고 싶은 것");
}else if( a == 2){
	System.out.println("a가 2인 경우에 하고 싶은 것");
}else if( a == 3){
	System.out.println("a가 3인 경우에 하고 싶은 것");
}else {
	System.out.println("이외의 경우에 하고 싶은 것"); 
}


if(a < 10){
	System.out.println("a가 10보다 작다.");
}else if(a < 20){
	System.out.println("a가 20보다 작다."); 
} //else if를 if로 하면 둘다 실행됨
  • if문, else if문과 else문은 실행했을 때 무조건 조건들 중 하나만 실행됨, else가 없는 경우 아무것도 실행 안될 수도 있음
  • 전부 true여도 맨위에 true 하나만 실행하고 빠져나옴

🎁if문 연습

  • 점수가 60점 이상이면 합격, 그렇지 않으면 불합격이라고 출력해주세요.
int score = 70;
if(score >= 60) {
	System.out.println("합격");
}else {
	System.out.println("불합격");
}
  • 점수에 등급을 부여하는 프로그램을 만들어 주세요.
int score = 80;
String grade = null;

if (score >= 90){
	grade = "A";
}else if (score >= 80){
	grade = "B";
}else if (score >=70){
	grade = "C";
}else if (score >=60){
	grade = "D";
}else {
	grade = "F";
}
System.out.println(score + "점에 해당하는 등급은 " +grade + "입니다.");
  • 등급에 '+', '-' 를 추가해 주세요 ex) A+, A-
int score = 90;
String grade = null;

if (score >= 90) {
	grade = "A"
	if (score >= 97) {
		grade += "+";
	} else if (score <= 93) {
		grade += "-";
	}
} else if (score >= 80) {
	grade = "B";
	if (score >= 87) {
		grade += "+";
	} else if (score <= 83) {
		grade += "-";
	}
} else if (score >= 70) {
	grade = "C";
	if (score >= 77) {
		grade += "+";
	} else if (score <= 73) {
		grade += "-";
	}
} else if (score >= 60) {
	grade = "D";
	if (score >= 67) {
		grade += "+";
	} else if (score <= 63) {
		grade += "-";
	}
} else {
	grade = "F";
}
System.out.println(score + "점에 해당하는 등급은 " + grade + "입니다.");
  • 숫자를 입력받아 그 숫자가 0인지 아닌지를 출력해주세요.
Scanner sc = new Scanner(System.in);
int num1;
System.out.print("숫자 입력>");
num1 = Integer.parseInt(sc.nextLine());

if(num1 == 0) {
	System.out.println("0입니다.");
}else {
	System.out.println("0이 아닙니다.");
}
  • 숫자를 입력받아 그 숫자가 홀수인지 짝수인지 출력해주세요.
Scanner sc = new Scanner(System.in);
int num2;
System.out.print("숫자 입력>");
num2 = Integer.parseInt(sc.nextLine());

if(num2 % 2 == 0) {
	System.out.println("짝수 입니다.");
}else {
	System.out.println("홀수 입니다.");
}
  • 정수 3개를 입력받아 총점, 평균, 등급을 출력해 주세요.
Scanner sc = new Scanner(System.in);
String grade = null;
System.out.println("국어 >");
int kor = Integer.parseInt(sc.nextLine());

System.out.println("영어 >");
int eng = Integer.parseInt(sc.nextLine());

System.out.println("수학 >");
int math = Integer.parseInt(sc.nextLine());

int sum = kor + eng + math;
double avg = Math.round(sum / 3.0 * 100) / 100.0;

if (avg >= 90) {
	grade = "A";

	if (avg >= 97) {
		grade += "+";
	} else if (avg <= 93) {
		grade += "-";
	}
} else if (avg >= 80) {
	grade = "B";

	if (avg >= 87) {
		grade += "+";
	} else if (avg <= 83) {
		grade += "-";
	}
} else if (avg >= 70) {
	grade = "C";

	if (avg >= 77) {
		grade += "+";
	} else if (avg <= 73) {
		grade += "-";
	}
} else if (avg >= 60) {
	grade = "D";

	if (avg >= 67) {
		grade += "+";
	} else if (avg <= 63) {
		grade += "-";
	}
} else {
	grade = "F";
}

System.out.println("총점 : " + sum + " 평균 : " + avg + " 등급 : " + grade);
  • 1부터 100사이의 랜덤한 수를 3개 발생시키고 오름차순으로 출력해주세요.
int x = (int)(Math.random() * 100) + 1;
int y = (int)(Math.random() * 100) + 1;
int z = (int)(Math.random() * 100) + 1;

if(x > y){
	int t = x;
	x = y;
	y = t;
}
if(x > z){
	int t = x;
	x = z;
	z = t;
}
if (y > z){
	int t = y;
	y = z;
	z = t;
}
System.out.println(x + " < " + y + " < " + z);

🎁switch문

  • switch(int or String) { case 1 : break; }
  • if문은 조건식으로 boolean타입이 오지만,
    switch문은 조건식으로 int나 String타입이 옴
  • 조건식의 결과는 정수와 문자열만 허용함(JDK1.7부터 문자열 허용)
  • 조건식과 일치하는 case문 이후의 문장을 수행함
  • break문으로 switch문을 벗어나게 됨
int a = 10; 
switch (a) {
case 10:
	System.out.println("a가 10인 경우에 하고싶은 것");
        break;
case 20:
	System.out.println("a가 20인 경우에 하고 싶은 것");
	break;
default:
	System.out.println("이외의 경우에 하고 싶은 것");
} //break문을 만날 때까지 실행함

주의 사항 : break문이 없을 경우, 계속 실행됨.

String b = "a";
switch(b){
case "a":
	System.out.println("b가 \"a\"인 경우에 하고싶은 것 "); //쌍따옴표 안에 쌍따옴표 넣으려면 \" \" 사용
    	break;
case "b":
	System.out.println("b가 \"b\"인 경우에 하고싶은 것 ");
    	break;
default : 
	System.out.println("이외의 경우에 하고싶은 것");
} 

🎁switch문 연습

  • 월에 해당하는 계절을 출력해주세요.
int month = 1;
String season = null;

switch(month) {
case 3: case 4: case 5:
	season ="봄";
	break;
case 6: case 7: case 8:
	season = "여름";
    break;
case 9: case 10: case 11:
	season = "가을";
    break;
case 12: case 1: case 2:
	season = "겨울";
    break;
}  
System.out.println(month +"월은 " +season +"입니다.");
  • 점수가 90점 이상이면 A등급, ...(10점씩 B, C, D) , 60점 미만이면 F등급을 출력해주세요.
int score = 80; //double일 경우
String grade = null;

switch(score / 10) { //(int)(score/10)해줘야함
case 9:
	grade = "A";
    	break;
case 8:
	grade = "B";
    	break;
case 7:
	grade = "C";
    	break;
case 6:
	grade = "D";
    	break;
default:
	grade = "F";
}
System.out.println(score + "점에 대한 등급은 "+grade+"입니다.");
  • 숫자를 입력받아 그 숫자가 홀수인지 짝수인지 출력해주세요.
Scanner sc = new Scanner(System.in);
int num2;
System.out.print("숫자 입력>");
num2 = Integer.parseInt(sc.nextLine());

switch(num2 % 2) {
case 0 : System.out.println("짝수 입니다.");
    	 break;
case 1 : System.out.println("홀수 입니다.");
    	 break;
}

좋은 웹페이지 즐겨찾기