TIL 0221

먼지·2024년 2월 22일
0

Today I Learned

목록 보기
4/89
post-thumbnail

📒 숙제 / 강사님 코드

public class IfMain07 {

	public static void main(String[] args) {

	//현재 날짜 정보
	int nowYear = 2024;
	int nowMonth = 2;
	int nowDate = 21;
		
java.util.Scanner input = new java.util.Scanner(System.in);
		
	System.out.print("출생연도 : ");
	int birthYear = input.nextInt();
	System.out.print("월 입력 : ");
	int birthMonth = input.nextInt();
	System.out.print("일 입력 : ");
	int birthDate = input.nextInt();
		
	int age = nowYear - birthYear ;
	
	/*
		if (birthMonth > nowMonth){
			//태어난 월과 현재 월을 비교
			age --; // age-=1} 
		else if ( nowMonth == birthMonth && nowDate < birthDate) 
        {//태어난 월과 현재 월이 같을 경우 일 비교
			age --; //age -= 1}
		*/
		
		if ( nowMonth < birthMonth || (nowMonth == birthMonth && nowDate < birthDate) )
		{age --;}

		System.out.printf("만 나이는 %d입니다.", age);
		
	input.close();

	}

}

실행 결과

📱If문 사용하여 연산 실습

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(); // + , - , * , / , %
		System.out.print("두번째 수 : " );
		int second = input.nextInt();

		if ( operator.equals("+")) {
			result = first + second;
		}
		
		else if (operator.equals("-")) {
			result = first - second;
		}
		
		else if (operator.equals("*")) {
			result = first * second;
		}
		
		else if (operator.equals("/"))
		{
			if(second!=0) {  // 두번째 수가 0이 아니라면~
				result = first / second;
			}
			else {
				System.out.println("0으로 나눌 수 없습니다.");
				System.exit(0);
			}
		}
		
		else if(operator.equals("%")){
			
			if(second != 0) { // 두번째 수가 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();

	}

}

실행 결과

🔄️ Switch문

🔄️ Switch 실습 1

public class SwitchMain01 {

	public static void main(String[] args) {
		
		java.util.Scanner input = new java.util.Scanner(System.in);

		System.out.print("정수형 숫자 입력 : ");
		int a = input.nextInt();
		
		// switch 의 인자값은 long 지외한 정수형 ( byte, short, int ) , char, 문자열 사용 가능
		// 인자값과 조건값이 일치하는지 여부를 체크한다.
		switch(a) {
		
		case 1:
			System.out.println("1. 입력");
			break; //수행문을 실행한 후에 switch 블럭을 빠져나감
		
		case 2:
			System.out.println("2. 입력");
			break;
			
		case 3:
			System.out.println("3. 입력");
			break;
		
		default:
			System.out.println("1,2,3이 아닌 숫자 입력");

		}
				
		input.close();
	}

}

실행 결과

🔄️ Switch 실습 2

public class SwitchMain02 {

	public static void main(String[] args) {

		java.util.Scanner input = new java.util.Scanner(System.in);

		System.out.print("계절 입력 : ");
		//next() : 봄 여름 -> 봄만 사용
		//nextLine() : 봄 여름 -> 봄 여름 한 라인의 데이터 사용
		String season = input.nextLine();
		
		switch(season) {
		
		case "봄":
			System.out.println("꽃이 피는 계절");
			break;
			
		case "여름":
			System.out.println("뜨거운 태양의 계절");
			break;
			
		case "가을":
			System.out.println("산들 바람이 부는 계절");
			break;
		
		case "겨울":
			System.out.println("눈이 내리는 계절");
			break;
			
		default:
			System.out.println("없는 계절입니다.");
		}
		
		
		input.close();
		
	}

}

실행 결과

🔄️ Switch 실습 3

public class SwitchMain03{

	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(score < 0 || score > 100) {
			System.out.println(" 성적은 0 ~ 100만 입력 가능");
			System.exit(0);
		}
		
		switch(score / 10) {
		
		case 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();
		System.out.printf(" 성적 : %d%n" , score);
		System.out.printf(" 등급 : %c%n" , grade);
		
		input.close();
	}

}

실행 결과

🔄️ Switch문 사용한 연산 실습

[실습]
두 개의 정수와 연산자를 입력한 후 연산의 결과를 출력하시오.

[입력 예시]
첫번째 수 : 10
연산자: +
두번째 수: 20

[출력 예시]
10 + 20 = 30
public class SwitchMain04 {

	public static void main(String[] args) {
		
		int result = 0;
		
		java.util.Scanner input = new java.util.Scanner(System.in);
		
		System.out.print("첫번째 수 : ");
		int first = input.nextInt();
		System.out.print("연산자 : ");
		String operator = input.next();
		System.out.print("두번째 수 : ");
		int second = input.nextInt();
		
		if (operator.equals("/"))
		{ if(second!=0) {  // 두번째 수가 0이 아니라면~
				result = first / second;}
			else {
				System.out.println("0으로 나눌 수 없습니다.");
				System.exit(0);}
		}
		
		if (operator.equals("%"))
		{ if(second!=0) {  // 두번째 수가 0이 아니라면~
				result = first / second;}
			else {
				System.out.println("0으로 나눌 수 없습니다.");
				System.exit(0);}
		}
		
		switch (operator){
		
		case  "+":
			result = first + second;
			break;
		
		case  "-":
			result = first - second;
			break;
			
		case  "*":
			result = first * second;
			break;
			
		case  "/":
			result = first / second;
			break;
			
		case  "%":
			result = first % second;
			break;
			
		default:
			System.out.println("잘못된 연산자가 입력되었습니다.");
			System.exit(0);
		}
		
		System.out.println();
		System.out.printf(" %d %s %d = %d" , first, operator, second, result);
		input.close();
		
	}

}

실행 결과

💭 For문

💭 For문 실습 1

public class ForMain01 {

	public static void main(String[] args) {

		//for  반복문
		// 초기식 ; 조건식 ; 증감식
		for (int i = 1; i <= 5 ; i++) {
			System.out.println(i);	
		}
		System.out.println("========");
		
		// 수행문이 한 줄일 경우 {} 생략 가눙
		for (int i = 1; i <= 5 ; i++) 
			System.out.println(i);	
		
		System.out.println("프로그램 끝");
	}

}

실행 결과

💭 For문 실습 2

public class ForMain02 {

	public static void main(String[] args) {
				//초기식; 조건식; 증감식
		for (int i =5; i >= 1; i--) {
			System.out.print(i + "\t");
		}
		
		System.out.println("\n=========================");
		
		for (int i = 0; i <= 10; i+=2) {
			System.out.print( i + "\t");
		}
		
		System.out.println("\n=========================");
		
		for (int i = 0; i <= 10; i++) {
			if(i % 2 == 0) {
				System.out.print(i + "\t");
			}
		}
	}

}

실행 결과

💭 For문 실습 3

public class ForMain03 {

	public static void main(String[] args) {
	
		int sum = 0; //변수를 선언하고 초기화 시킨다. 
		
		for(int i = 1; i <=100; i++) {
			//누적 작업
			sum += i; //sum 안에다가 누적 작업을 하는 것이다. 1 ~ 100까지
		}
		System.out.println("1부터 100까지의 합 : " + sum);
		
		System.out.println("--------------------------------------------");
		
		int total = 0;
		
		/*for (int i = 1; i<=100; i+=2) {
			
			total += i;
		}*/
		
		for(int i = 1; i<=100; i++) {
			if (i % 2 == 0) {
				total += i;
			}
			
		}
		
		System.out.println("1부터 100까지 짝수의 합 : " + total);
	}
	
}

실행 결과

💭 For문 실습 4

public class ForMain04 {

	public static void main(String[] args) {

		java.util.Scanner input = new java.util.Scanner(System.in);

		
		System.out.print("단 입력 : ");
		int dan = input.nextInt();
	
		System.out.println("----------------");
		System.out.println(dan + "단");
		System.out.println("----------------");
		
		for(int i = 1; i<=9; i++) {
			//곱해지는 숫자
			System.out.println(dan + " * " + i + " = " + (dan * i));
		}
		
		input.close();
		
	}

}

실행 결과

💭 For문 실습 5

public class ForMain05 {

	public static void main(String[] args) {

		//2~9단까지 출력하기 위해 다중 for 문 사용

		for(int dan = 2; dan<=9; dan++) {
			//dan : 구구단의 단 2~9단
			System.out.println("** " + dan + "단 **");

			for(int i = 1; i<=9; i++) {
				//i 는 곱해지는 수 1~9까지
				System.out.println(dan + " * " + i + " = " + (dan * i));
			}

		}

	}

}

실행 결과

🐋 While문

🐋 While문 실습 1

public class WhileMain01 {

	public static void main(String[] args) {
		
		//초기값
		int i = 1;
				//조건식
		while ( i <= 10){
			//증감식
			System.out.println(i++);
		}
		
	}

}

실행 결과

🐋 While문 실습 2

public class WhileMain02 {

	public static void main(String[] args) {
		
		//초기
		int sum = 0;
		int su = 1;
		
		//조건식
		while(su <= 100) {
			//누적
			sum += su;
			//증감식
			//su++;
		}
		System.out.println("1부터 100까지의 합 : " + sum);
	}

}

실행 결과

🐋 While문 실습 3

public class WhileMain03 {

	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);

		System.out.print("단을 입력하세요 : ");
		int dan = input.nextInt();
		
		System.out.println("-----------------------");
		System.out.println( dan + " 단 ");
		System.out.println("-----------------------");
		
		int i =1;
				//조건식
		while(i<=9) {
			System.out.println(dan + " * " + i + " = " + dan*i );
			//증감
			i++;	
		}
		
		
		input.close();
		
	}
}

실행 결과

🐋 While문 실습 4

[실습]
입력받은 정수값부터 0까지 출력하는 프로그램을 작성하시오
(0보다 큰 수를 입력하고, 0이하를 입력하면 "0보다 큰 수를 입력하세요" 라고 출력한다.)

[입력 예시]
정수 입력: 3

[출력 예시]
3
2
1
0

public class WhileMain04 {

	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);

		System.out.print("정수 입력 : ");
		int num = input.nextInt();

		/* 내가 작성한 코드
		if (num<=0) {
			System.out.println("0보다 큰 수를 입력하세요.");
			System.exit(0);
		}

		while(num >=0)
		{  System.out.println(num--); }
		 */

		if(num>0) {
			while(num>=0) {
				System.out.println(num--);
			}}

		else {
			System.out.println("0보다 큰 수를 입력하세요.");}
		input.close();

	}

}

실행 결과

🐋 While문 실습 5

public class WhileMain05 {

	public static void main(String[] args) {
		
		java.util.Scanner input = new java.util.Scanner(System.in);
		
		int a, total = 0;
		
		System.out.println("0전까지 입력받은 정수로 합 구하기");
		
		System.out.print("누적할 정수 데이터 입력: ");
		
		while( (a = input.nextInt()) != 0) {
			//누적
			total += a;
			System.out.print("누적할 정수 데이터 입력 :");
		}
		
		System.out.println("total = " + total);

		input.close();

	}

}

실행 결과

🐋 While문 실습 6

public class WhileMain06 {

	public static void main(String[] args) {
		
		java.util.Scanner input = new java.util.Scanner(System.in);

		int a, total = 0;
		
		System.out.println("0 전까지 입력받은 정수로 합 구하기");
		
		while(true) {
			System.out.print("누적할 정수 데이터 입력: ");
			a = input.nextInt();
			if(a == 0) {
				break; //반복문 빠져나가기
			}
			//누적
			total += a;
		}
		System.out.println("total = " + total);
		
		input.close();

	}

}

실행 결과

🐋 While문 실습 7

public class WhileMain07 {

	public static void main(String[] args) {
		
		// 은행프로그램 만들기
		java.util.Scanner input = new java.util.Scanner(System.in);

		long balance = 0L; //잔고
		
		while(true) {
			System.out.println("-----------------------------------------------");
			System.out.println("  1. 예금  |  2. 출금  |  3. 잔고 확인  |  4. 종료  ");
			System.out.println("-----------------------------------------------");
			
			System.out.print("메뉴를 선택하세요 > ");
			int num = input.nextInt();
			
			if(num == 1) {
				System.out.print("얼마를 예금하시겠습니까?>");
				balance += input.nextLong();
			}
			
			else if (num == 2) {
				System.out.print("얼마를 출금하시겠습니까? > ");
				balance -= input.nextLong();
			}
			
			else if (num == 3) {
				System.out.printf("현재 계좌의 잔고는 %,d원 입니다.%n" , balance);
			}
			
			else if (num == 4) {
				System.out.println("프로그램을 종료합니다.");
				break;
			}
			
			else {
				System.out.println("잘못 입력하였습니다.");
			}				
		}
		
		input.close();

	}

}

실행 결과

🐋 While문 실습 8

[실습]
커피전문점에서 아메리카노가 4,000원입니다.
마실 커피 수량을 정하고 돈을 지불하세요.
지불한 돈에서 발생한 거스름돈을 출력하고,
커피의 총 비용보다 지불한 돈이 적어서 커피를 구매할 수 없을 경우 "금액이 부족합니다." 출력하시오.
다시 지불할 수 있는 프로그램을 작성하세요.
(정상적으로 아메리카노를 구매하면 반복문을 빠져나오고 금액이 부족하면 계속 반복해야한다.)

[입력 예시]
구매 수량 : 1
지불한 금액 : 5000
or
지불한 금액 : 3000

[출력 예시]
거스름돈은 1,000원 입니다. -> 반복문을 빠져나감 (거스름돈 >= 0)
or
1,000원이 부족합니다. -> 계속 반복
public class WhileMain08 {

	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);
		int price = 4000; // 커피 가격
		int quantity; //수량
		int balance; //거스름돈
		int payment; //지불한 돈
		int total; // 총 지불해야 할 금액


		System.out.print("아메리카노 몇 잔을 구매하시나요? ");
		quantity = input.nextInt();

		while(true) {

			System.out.print("지불한 금액이 얼마입니까? ");
			payment = input.nextInt();

			total = quantity * price;
			balance = payment - total  ;

			if(payment >= total) {
				System.out.println();
				System.out.printf("거스름돈은 %,d원 입니다. 문이 열립니다." , balance);
				break;
			}
			else {
				System.out.println( (total - payment) + "원이 부족합니다. 다시 지불해주세요.");
			}

		}
		input.close();
	}

}

실행 결과

profile
Lucky Things🍀

0개의 댓글