Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

으나님의 잡다한 개발상식

(JAVA) 조건문 본문

JAVA

(JAVA) 조건문

스위트치즈 2019. 11. 6. 20:53

1. 조건문

java에서 조건문은 if문과 switch문 두 가지뿐이다.

 

2. if문을 이용하여 문제 풀기

EX) 점수별 성적표 만들기

import java.util.Scanner;

public class ex08 {
	public static void main(String[] args) {
/*성적을 입력받아서
 *90점 이상이면 A
 *80점 이상이면 B
 *70점 이상이면 C
 *60점 이상이면 D
 *60점 미만이면 F
*/
	Scanner scan =new Scanner(System.in);
	
	int score = scan.nextInt();
	if(score>100 || score <0) {
		System.out.println("잘못된 입력입니다.");
	}else{
		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");
	}
	}

}
}

※ java에서는 if문은 중괄호를 쓰지 않아도 첫 번째 줄을 true가 나올 경우 반환하는 값으로 생각하여 수행이 가능하다.

EX)
int A = 1;
if(A==1);
System.out.print(A);	//OK

EX)
int A = 1;
if(A==1)
System.out.print(A);
System.out.print(A+1);	//OK

//위의 식은 아래의 식과 같다.
int A = 1;
if(A==1) {
System.out.print(A);
} else {
System.out.print(A+1);
}

EX)
if(A==1)
System.out.print(A);
else					//Error : else 아래의 구문이 필요하다.

EX)
if(A==1)
System.out.print(A);
else
System.out.print(A+1);	//OK

 

※ if 조건식에서 자주 헷갈릴 수 있는 부분

EX)
int i = 0;
if(i=0){}	//Error
if(i==0){}	//OK

EX)
String str = "a"
char ch = "b"
if(str=="c"){}	//Error : String과 char 값 직접 비교 불가능. 객체를 비교하려면 아래와 같이
if(str.equals("C")){}	//OK

ch=str.charAt(0);	//OK .charAt();는 character의 값을 String으로 변환한다.

3. switch문을 이용하여 문제 풀기

(1) if문과 달리 조건식의 계산결과가 int범위 이하의 정수만 가능하다.

(2) case문으로 이동 후 break문을 만날 때까지 문장들을 수행한다.

즉, break가 없으면 or로 계산되어 진행된다.

EX) 스위치문으로 성적표 만들기
import java.util.Scanner;

public class ex11 {
public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);
	
	double score = scan.nextDouble();
	
	if(score>100 || score<0) {
		System.out.println("다시 입력해주세요");
	}else {
	switch((int)score/10) {
	case 10:
	case 9 :
		System.out.println("A");
		break;						//10 or 9인 경우 "A"를 도출
	case 8 :
		System.out.println("B");
		break;
	case 7 :
		System.out.println("C");
		break;
	case 6 :
		System.out.println("D");
		break;
	case 5:
	case 4:
	case 3:
	case 2:
	case 1:
	case 0:
		System.out.println("F");
		break;
	default :
		System.out.println("다시 입력해주세요.");
		break;
	}
}
}
}

 

EX) 첫 번째 숫자와 두 번째 숫자 입력받아서 연산하기
import java.util.Scanner;

public class ex12 {
/*첫 번째 숫자 입력받고 두 번째 숫자 입력 받아서
 * +,-,*,/ 을 입력받아서 답을 도출
 */
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.println("첫 번째 숫자를 입력하세요.");
		double fir = scan.nextDouble();
		System.out.println("두 번째 숫자를 입력하세요.");
		double sec = scan.nextDouble();
		System.out.println("연산자를 입력하세요.");
		String op = scan.next();
		
		
		
		switch(op){
		case "+" :
			System.out.println(fir+sec);
			break;
		case "-" :
			System.out.println(fir-sec);
			break;
		case "*":
			System.out.println(fir*sec);
			break;
		case "/" :
			if(sec==0) {
				System.out.println("0으로 나눌 수 없습니다.");
			}else {
			System.out.println(fir/sec);
			}
			break;
		}
		
	}
}

 

EX) 자판기 프로그램 만들기
import java.util.Scanner;

public class ex13 {
public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);
	System.out.println("돈을 넣으세요.");
	
	int money = scan.nextInt();
	
	System.out.println("메뉴를 고르세요.");
	
	
	int gum1=100;
	int gum2=200;
	int gum3=300;
	int gum4=400;
	int gum5=500;
	int gum6=600;
	int gum7=700;
	int gum8=800;
	int gum9=900;
	int gum10=1000;
	
	// 넣은 돈보다 비싼 메뉴는 뜨지 않게 하기
    
	if(gum1<=money)
		System.out.println("1. 껌1 : 100원");
	if(gum2<=money)
		System.out.println("2. 껌2 : 200원");
	if(gum3<=money)
		System.out.println("3. 껌3 : 300원");
	if(gum4<=money)
		System.out.println("4. 껌4 : 400원");
	if(gum5<=money)
		System.out.println("5. 껌5 : 500원");
	if(gum6<=money)
		System.out.println("6. 껌6 : 600원");
	if(gum7<=money)
		System.out.println("7. 껌7 : 700원");
	if(gum8<=money)
		System.out.println("8. 껌8 : 800원");
	if(gum9<=money)
		System.out.println("9. 껌9 : 900원");
	if(gum10<=money)
		System.out.println("10. 껌10 : 1000원");
	int menu = scan.nextInt();
	
    //메뉴와 거스름돈 안내문구 넣기
    
	switch(menu) {
	case 1:
		System.out.println("껌1을 고르셨습니다. 거스름돈은 "+(money-gum1)+"원입니다.");
		break;
	case 2:
		System.out.println("껌2을 고르셨습니다. 거스름돈은 "+(money-gum2)+"원입니다.");
		break;
	case 3:
		System.out.println("껌3을 고르셨습니다. 거스름돈은 "+(money-gum3)+"원입니다.");
		break;
	case 4:
		System.out.println("껌4를 고르셨습니다. 거스름돈은 "+(money-gum4)+"원입니다.");
		break;
	case 5:
		System.out.println("껌5를 고르셨습니다. 거스름돈은 "+(money-gum5)+"원입니다.");
		break;
	case 6:
		System.out.println("껌6을 고르셨습니다. 거스름돈은 "+(money-gum6)+"원입니다.");
		break;
	case 7:
		System.out.println("껌7을 고르셨습니다. 거스름돈은 "+(money-gum7)+"원입니다.");
		break;
	case 8:
		System.out.println("껌8을 고르셨습니다. 거스름돈은 "+(money-gum8)+"원입니다.");
		break;
	case 9:
		System.out.println("껌9을 고르셨습니다. 거스름돈은 "+(money-gum9)+"원입니다.");
		break;
	case 10:
		System.out.println("껌10을 고르셨습니다. 거스름돈은 "+(money-gum10)+"원입니다.");
		break;
	}
	
}
}

'JAVA' 카테고리의 다른 글

(JAVA) method  (0) 2019.11.23
(JAVA) 반복문에서 label 사용하기  (0) 2019.11.22
(JAVA) String split으로 쪼개서 2차원 배열로 만들기  (0) 2019.11.22
(JAVA) 연산자  (0) 2019.11.06
(JAVA) 기초  (0) 2019.11.05