쌍용교육(JAVA)/JAVA

쌍용교육 -JAVA 수업 3~4일차 IF문

구 승 2024. 4. 11. 17:03
package kr.s03.operation;

public class IfMain01 {
	public static void main(String[] args) {
		System.out.println("===단일if문===");
		int n = 10;
		
		//단일 if문: 조건이 true이면 if블럭 안의 수행문을 실행
		if(n > 5) {//if문 시작
			System.out.println("n은 5보다 크다.");
		}//if문 끝
		
		System.out.println("==============");
		
		//if문 불럭내의 수행문이 한줄이면 {}블럭을 생략할 수 있음. 
		if (n<5) 
			System.out.println("~~~~~~~~");
		
		System.out.println("프로그램 종료!");
	}

}
  
===단일if문===
n은 5보다 크다.
==============
프로그램 종료!

package kr.s03.operation;

public class IfMain02 {
	public static void main(String[] args) {
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		
		System.out.print("정수형 데이터 한 개 입력:");
		int a = input.nextInt();
		
		//if~else
		//조건이 true이면 if블럭의 수행문을 실행, 조건이 false이면 else블럭의 수행문을 실행
		if(a%2 ==1) {
			System.out.println("홀수이다.");
		}else {
			System.out.println("짝수이다.");
		}
		input.close();
	}
}

정수형 데이터 한 개 입력:5
홀수이다.

package kr.s03.operation;

public class IfMain03 {
	public static void main(String[] args) {
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		System.out.print("정수 한 개 입력:");
		int a = input.nextInt();
		//다중if문
		if(a>0) {
			System.out.println(a+"는 양수입니다.");
			
		}
		else if (a<0){
			System.out.println(a+"는 음수입니다.");
		}
		else {//a가 0일 때
			System.out.println(a+"입니다.");
		}
		
		input.close();
		
	}
}

정수 한 개 입력:5
5는 양수입니다.

package kr.s03.operation;

public class IfMain04 {
	public static void main(String[] args) {
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		int score;
		char grade;
		
		System.out.print("성적입력");
		
		score = input.nextInt();
		//다중if문
		if(score >=90 && score <=100) {
			grade = 'A';
		}
		else if(score >=80 && score <=89) {
			grade = 'B';
		}
		else if(score >=70 && score <=79) {
			grade = 'C';
		}
		else if(score >=60 && score <=69) {
			grade = 'D';
		}	
		else if(score >= 0 && score <= 59) {
			grade = 'F';
		}
		else {//100초과이거나 음수일 때
			grade = '?';
		}
		
		System.out.printf("성적 : %d%n", score);
		System.out.printf("등급: %c%n", grade);
		
		
		input.close();
	}
}

성적입력70
성적 : 70
등급: C

package kr.s03.operation;

public class IfMain05 {	
	public static void main(String[] args) {
		/*
		 * [실습]
		 * 정수 하나를 입력하여 짝수면 10을 더하고 홀수면 20을 더하여
		 * 결과값을 출력하시오.
		 * [입력예시]
		 * 정수 하나 입력:5
		 * 
		 * [출력예시]
		 * 결과:25
		 */
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		System.out.print("정수 하나 입력:");
		int num = input.nextInt();
		int result = 0;
		
		if(num%2==0) {
			result = num+10;
			
		}
		else {
			result = num+20;
		}
		System.out.printf("결과:%d%n", result);
		input.close();
	}
}

정수 하나 입력:5
결과:25

package kr.s03.operation;

public class IfMain06 {
	public static void main(String[] args) {
		/*
		 * [실습]
		 * 정수 두 개를 입력 받아서 변수에 저장하고 두 값 중 최대값과
		 * 최소값을 구하여 최대값과 최소값을 출력하시오.
		 * 입력한 두 수가 같을 경우 "두 수는 같다" 라고 출력하시오.
		 * 
		 * [입력예시]
		 * 첫번째 정수 입력:3
		 * 두번쨰 정수 입력:2
		 * or
		 * 첫번째 정수 입력:5
		 * 두번쨰 정수 입력:5
		 * 
		 * [출력예시]
		 * 최대값:3
		 * 최소값:2
		 * or
		 * "두 수는 같다".
		 * 
		 */
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		System.out.print("첫번째 정수 입력:");
		int first = input.nextInt();
		System.out.print("두번째 정수 입력:");
		int second = input.nextInt();
		
		
		
		if(first > second) {
			
			System.out.println("최대값:"+first);
			System.out.println("최소값:"+second);
		}
		else if(first < second) {
			
			System.out.println("최대값:"+second);
			System.out.println("최소값:"+first);
		}
		else {
			System.out.println("두 수는 같다.");
		}
		
		
		input.close();
	}
}

첫번째 정수 입력:3
두번째 정수 입력:2
최대값:3
최소값:2

package kr.s03.operation;

public class IfMain07 {
	public static void main(String[] args) {
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		
		/*
		 * [실습]
		 * 생년월일 입력하고 만 나이를 출력하는 프로그램을 작성하시오.
		 * 만 나이 = (현재년도 - 태어난 연도) - (생일이 지났으면 0, 생일이 지나지않았으면 1)
		 * 
		 * [입력 예시]
		 * 출생 연도 입력:2000
		 * 월 입력:3
		 * 일 입력:12
		 * 
		 * [출력 예시]
		 * 만 나이는 23
		 * 
		 */
		//현재 날짜 정보
		int nowYear =2024;
		int nowMonth =2;
		int nowdate = 21;
		
		System.out.print("생년월일 입력:");
		int year = input.nextInt();
		System.out.print("월 입력:");
		int month = input.nextInt();
		System.out.print("일 입력:");
		int date = input.nextInt();
		
		int age = nowYear - year;
		/*
		if ((nowMonth >= month && nowdate >=date) ||
				(nowMonth >= month && nowdate <date)) {
			
			System.out.println("만 나이는 "+ age);
		
		}
		else {
			age--;//age-=1;//age = age - 1;
			System.out.println("만 나이는 " + age);
			
		}
		*/
		
		if(nowMonth < month || (nowMonth == month && nowdate<date)) {
			age--;
		}
		System.out.println("만 나이는 " + age);
		
		input.close();
	}
}

생년월일 입력:2000
월 입력:3
일 입력:12
만 나이는 23

package kr.s03.operation;

public class IfMain08 {
	public static void main(String[] args) {
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		int result = 0; //연산의 결과를 저장할 변수 선언 및 초기화
		
		System.out.print("첫번째 수:");
		int first = input.nextInt();
		System.out.print("연산자:");
		String operator = input.next(); //next는 공백없이 nextLine공백있음 (+,-,*,/,%)
		System.out.print("두번째 수:");
		int second = input.nextInt();
		
		if(operator.equals("+") )//문자열을 비교할 때는 ==가 아닌 .equlas 사용
			result = first+second;
		else if(operator.equals("-")) {
			result = first-second;
		}
		else if(operator.equals("*")) {
			result = first*second;
		}
		else if(operator.equals("/")) {
			if (second != 0){
				result = first/second;
			}
			else {
				System.out.println("0으로 나눌 수 없습니다.");
				//프로그램종료
				 System.exit(0);
			}
		}
		else if(operator.equals("%")) {
			if (second != 0){
				result = first%second;
			}
			else {
				System.out.println("0으로 나눌 수 없습니다.");
				//프로그램종료
				 System.exit(0);
			}
		}
		else {
			System.out.println("잘못된 연산자 입력");
			//프로그램종료
			System.exit(0);
		}
		
		System.out.println();//단순 줄바꿈
		System.out.printf("%d%s%d = %d",first,operator,second,result);
		input.close();
	}
}

첫번째 수:1
연산자:*
두번째 수:5

1*5 = 5

실습

package kr.s03.operation;

public class CoffeeMain {
	public static void main(String[] args) {
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		/*내가 한거 오류는 안나지만 코드가 좀 아쉽고 완벽하진않음.
		 * [실습]
		 * 동전을 넣고 커피를 주문하면 커피를 판매하는 자판기 프로그램
		 * 자판기는 자판기 보유 동전(1000),커피(10),프림(10),설탕(10)
		 * 을 보유하고 있고 커피를 주문할 때 마다 자판기 보유 동전-거스름돈,
		 * 커피 5, 프림 3, 설탕 1 씩 차감되고 0이 되면 판매를 중단함.
		 * 
		 * [입력 및 출력 예시]
		 * 동전을 넣으세요(커피값:400원):500
		 * 
		 * 거스름돈 : 100원
		 * 맛 좋은 커피가 준비되었습니다.
		 * or
		 * 동전을 넣으세요(커피값:400원):300
		 * (고객이 투입한 동전이 커피값보다 작으면) 투입한 동전이 부족합니다.
		 * or
		 * 동전을 넣으세요(커피값:400원):2000
		 * (자판기 보유 동전이 부족하면) 거스름돈이 부족합니다.
		 * or
		 * (커피가 부족하면) 커피가 부족합니다.
		 * (프림이 부족하면) 프림이 부족합니다.
		 * (설탕이 부족하면) 설탕이 부족합니다.
		 * ======현재 자판기 정보======
		 * 커피 : 5
		 * 프림 : 7
		 * 설탕 : 1
		 * 자판기 보유 동전 금액: 900원
		 * 투입한 동전 금액:500원
		 * ======================
		 */
		
		//커피 정보
		int price = 400;
		//커피 한 잔에 들어갈 양
		int content_coffee = 5;
		int content_cream = 3;
		int content_sugar =1 ;
		//커피에 들어갈 재료의 현재 보유량
		int coffee = 10;
		int cream = 10;
		int sugar = 10;
		
		//투입한 금액 누적
		int amount = 0;
		//자판기 보유 동전
		int coin = 1000;
		
		while(true) {
			System.out.print("1:커피마시기|2:종료>");
			int num = input.nextInt();
			if(num==1) {
				System.out.print("동전을 넣으세요(커피값:400원): ");
				amount = input.nextInt();
				//거스름돈
				int sum = amount-price;
				
				coffee = coffee - content_coffee;
				cream = cream - content_cream;
				sugar = sugar - content_sugar;
				//자판기 보유 동전
				int coin2 = coin-sum;
				
				coin = coin-sum;
				
				
					if(amount>price) {
						
						
						if(coin <0) {
							System.out.println("거스름돈이 부족합니다.");
							break;
						}
						if(coffee <0) {
							System.out.println("커피가 부족합니다.");
							break;
						}
						else if(cream <0 ) {
							System.out.println("프림이 부족합니다.");	
							break;
						}
						else if(sugar <0 ) {
							System.out.println("설탕이 부족합니다.");	
							break;
						}
						System.out.println("거스름돈:"+(sum)+"원");
						System.out.println("맛 좋은 커피가 준비되었습니다.");
					}else if(amount<price) {
						        
						System.out.println("투입한 동전이 부족합니다.");
						
					}
					
					System.out.println("======현재 자판기 정보======");
					System.out.println("커피:" + coffee);
					System.out.println("프림:" + cream);
					System.out.println("설탕:" + sugar);
					System.out.println("자판기 보유 동전 금액:" + (coin2)+"원");
					System.out.println("투입한 동전 금액:" + amount +"원");//누적한 투입 동전인지 모르고 만든 것(틀린거임 이 코드는)
			}
			else if(num==2) {
				System.out.println("자판기 안녕~~~");
				break;
			}else {
				System.out.println("잘못 입력했습니다.");
			}
		}
		input.close();
	}
}

1:커피마시기|2:종료>1
동전을 넣으세요(커피값:400원): 500
거스름돈:100원
맛 좋은 커피가 준비되었습니다.
======현재 자판기 정보======
커피:5
프림:7
설탕:9
자판기 보유 동전 금액:900원
투입한 동전 금액:500원
1:커피마시기|2:종료>2
자판기 안녕~~~