일단 해보는 코딩/Java

[Java] If문, else if~,

eun_zoey2 2022. 7. 21. 12:30
728x90
제어문(control statement)

대부분 프로그램은 위에서 아래로 한 줄씩 순차적으로 실행되는데(절차식 : batch) 프로그램의 흐름을 바꾸는(제어하는) 기술 문장.

 

 

# if 문 :  단순 if 문 : if 문의 조건이 참이면 if 문을 실행하고, 거짓이면 아무 것도 실행하지 않는다.

package Java04;

public class Test01{

	public static void main(String[] args){
		// TODO Auto-generated method stub
		int n =50;
		String str = null;	// String은 특수한 클래스이다. 초기값은 null이다.
		if(n==50) {	// ( ) 안은 무조건 True/False의 조건이여야 한다.
			str = "n은 50입니다.";
			System.out.println(str);
		} 	// { }사이를 code block이라고 하며, 하나(suite)로 작동된다.
		if(n!=50) {
			System.out.println("n은 50 아닙니다.");
			
		}
	}
}

# if ~ else 문 : if 문의 조건이 참이면 if 문을 실행하고, 거짓이면 else 문을 실행한다.

package Java04;

public class Test02{

	public static void main(String[] args){
		// TODO Auto-generated method stub
		int n =49;
		String str = null;
		if ( ++n >=50) {	//이 경우는 n은 1+n이어서 50
			str = "n은 50 이상입니다.";
		} else {
			str = "n은 50 미만입니다.";
	}
		System.out.println(str);
		/* if 조건이 True 이면 else 를 실행하지 않고 코드블럭을 벗어나 출력, 
		 * if 조건이 False 이면 if를 실행하지 않고 else를 출력*/
  }
}

 

# 다중 if문 : 여러 개의 조건 비교가 필요할 경우 if  ~ else if  ~ else if  ~ else

 

package Java04;

import java.util.Scanner;

public class Test03{

	public static void main(String[] args){
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		System.out.print("점수를 입력하세요 : ");
		int num = scan.nextInt();
		String str = "";	//String 문자열의 초기화
		if (num >= 90) {
			str = "A";
		} else if (num >=80) {
				str = "B";
		} else if ( num >= 70) {
				str = "C";
		} else if(num >=60) {
				str = "D";
		} else {
				str = "공부를 좀 하세요..";
		}
		System.out.println(str);	// 아래 두줄은 무조건 출력
		System.out.println("수고하셨습니다.");
		scan.close();
	}
}

 

 

 ■ 예제 풀기 ■

 

Q1. 출생년도를 입력받고, 30세 이상이면 "어른이 다 되었습니다", 30세 이하면 "아직 청춘입니다"를 보이고, 마지막에 "감사합니다"를 보이시오.

package Java04;

import java.util.Scanner;

public class Q1{

	public static void main(String[] args){
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		System.out.print("출생년도를 입력하세요 : ");
		int year = scan.nextInt();
		
		int age = (2022-year)+1;
		System.out.println(age + "살입니다.");
		String str = null;
		
		if (age >=30) {
			str = "어른이 다 되었습니다.";	
			System.out.println(str);
		} else {
			// str = "아직 청춘입니다."; 생략가능
			System.out.println(str);
		}	
		System.out.println("감사합니다.");
	}
}

Q2. 나이를 받아서 10세 미만이면 12% 할인, 20세 미만이면 5% 할인, 20세 이상이면 정가로 판매한다.

카드로 결제하면 3% 더 요금을 낸다. 현금은 그대로 계산한다.

물건 값은 A=1000원, B는 1200원, C=1700원이다.

물건 개수를 선택하게 하고, 선택한 물건의 총 계산 금액을 보이고, 나이에 따라서 할인 여부를 결정해서 계산하시오.

 

package Java04;

import java.util.Scanner;

public class Q2_2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in); 

		System.out.println("A물건의 구매갯수를 입력하세요");
		int oA = scan.nextInt();
		System.out.println("B물건의 구매갯수를 입력하세요");
		int oB = scan.nextInt();
		System.out.println("C물건의 구매갯수를 입력하세요");
		int oC = scan.nextInt();
		System.out.println("나이를 입력하세요");
		int age = scan.nextInt();
		System.out.println("카드결제면 1 현금이면 2를 입력해주세요");
		int ca = scan.nextInt();
		
		float sale ;
		float com ;
		if (age < 10) {
			sale = 0.88f;
		} else if (age < 20) {
			sale = 0.95f;
		} else {
			sale = 1;
		}
		
		if (ca==1) {
			com = 1.03f;
		} else {
			com = 1;
		}
		
		int sum = oA*1000 + oB*1200 + oC*1700;
		int pay = (int)(sum*sale*com);
		System.out.println("총 금액은 " +sum+ "원 이고 지불하실 금액은 " +pay+ "원 입니다.");
		scan.close();
	}
}

Q3. 놀이동산 기구를 타기 위해서 아이는 health하고 age는 6세 이상이여야 한다. 혹은 height는 130cm 이어야한다.이 조건에 안 맞으면 보호자 parents를 동방해야한다. 아이의 health(good/bad),age,  height 를 입력받고, 조건이 안 맞으면 아이의 parents 여부 확인해서 최종적으로 탑승 여부를 판별하시오.

 

package Java04;

import java.util.Scanner;

public class Q3_1 {


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		System.out.println("age를 입력하세요");
		int age = scan.nextInt();
		System.out.println("height를 입력하세요");
		float height =scan.nextFloat();
		System.out.println("health를 입력하세요 good=1, bad=2");
		int health = scan.nextInt();
		String str=null;
	   if(age>=6 && height>=130 && health==1) {
		   str="탑승하실수있습니다.";
		  		   
	   }else  {
		   System.out.println("parents의 여부 yes=1, no=2");
			int parents = scan.nextInt();
		  
		   if(parents==1) {
			   str="탑승가능합니다.";
		   }else 
			   str="탑승 불가능합니다.";
	   } 
	  System.out.println(str);
	  scan.close();
	}
	
}

Q4. 윤년은 년도가 4로 나누어 떨어지지만 100으로 나누어 떨어지지 않거나, 혹은 400으로 나누어 떨어지는 해를 말한다. 년도를 입력받아서 윤년 여부를 판단해 보시오.

package Java04;

import java.util.Scanner;

public class Q4_1 {


		public static void main(String[] args) {
			// TODO Auto-generated method stub
			Scanner scan = new Scanner(System.in);
			System.out.println("년도를 입력해주세요");
			int year = scan.nextInt();
			if ((year % 4 == 0 && year % 100 !=0) || (year % 400 ==0) ) {
				System.out.println("당신이 입력하신"+year+"는 윤년입니다.");
			}else {
				System.out.println("당신이 입력하신"+year+"는 윤년아닙니다.");
			}
			scan.close();
		}
}

'일단 해보는 코딩 > Java' 카테고리의 다른 글

[Java] 배열(Array)  (0) 2022.07.21
[Java] Switch ~ case 문, For문  (0) 2022.07.21
[Java] 스캐너(Scanner) 예제모음  (0) 2022.07.20
[Java] 연산자 종류  (0) 2022.07.20
[Java] 변수 선언 규칙  (0) 2022.07.19