Java

[Java] 반복문 / Scanner / if문의 응용 (대문자 소문자 전환, 잔돈 교환, 12간지, Vending machine 등)

소댓 2023. 3. 8. 18:25

1. 입력받은 초를 시간으로 환산하는 코드를 작성하세요

입력 : 54321

15시간 5분 21초

package day05;
import java.util.Scanner;
public class Day05Q01 {
// 사용자가 입력한 초를 시간으로 환산하여 출력
	public static void main(String[] args) {
		
		// 사용자에게 초 입력 받기
		System.out.println("입력 : ");
		Scanner sc = new Scanner(System.in);
		int m = sc.nextInt();
		
		System.out.println(m/3600 +"시간");
		System.out.println(m%3600/60 +"분");
		System.out.println(m%3600%60%60 +"초");

	}

}
 

2. 사용자가 입력한 숫자가 3의 배수인지 아닌지를 출력

if(value%3==0) {

}

----------------------------

숫자입력:6

​6은 3의배수 입니다.

----------------------------

숫자입력:7

7은 3의배수가 아닙니다.

 

package day05;
import java.util.Scanner;
public class Day05Q02 {
// 사용자가 입력한 숫자가 3의 배수인지 아닌지 출력
	public static void main(String[] args) {
		
		System.out.println("숫자를 입력하세요 : ");
		Scanner sc = new Scanner(System.in);
		int value = sc.nextInt();
		
		if(value%3 == 0) {
			System.out.println(value+"은 3의 배수 입니다.");
		} else {
			System.out.println(value+"은 3의 배수가 아닙니다.");
		}

	}
}
 

 

3 . 사용자가 입력한 문자가 대문자인지 소문자인지 판단

​hint)

1. 글자의 ASCII  <-- 2. A : 65 B :66 C:67 ... a : 97 b: 98 c:99 ... 3. 대소문자 ASCII 차이가 32 4. 문자변수에 대입 5. 출력

 

입력: a

a 는 소문자입니다.

입력: A

A 는 대문자입니다.

package day05;
import java.io.IOException;
public class Day05Q03 {
	// 사용자가 입력한 문자가 대문자인지 소문자인지 판단 
	public static void main(String[] args) throws IOException {
		
		System.out.println("문자를 입력하세요 : ");
		
		int value = System.in.read();
		
		if (value>=65 && value<=96) {
		System.out.println((char)value+"는 대문자 입니다.");
		} else {
			System.out.println((char)value+"는 소문자 입니다.");
		}
		
		
	}

}
 

 

4. 1부터 100까지 정수를 출력 : 2의 배수를 ***

1

***

3

***

5

***

...

99

package day05;
// 1부터 100까지 정수를 출력 : 2의 배수는 ***
public class Day05Q04 {
	public static void main(String[] args) {
		
		for(int i = 1; i<=100; i++) {
			if(i%2 == 0) {
				System.out.println("***");
			} else {
				System.out.println(i);
			}
				
		}
	}
}
 

 

5. 1부터 100까지의 짝수의 누적합을 구하는 코드를 작성하시요

 

[출력]

1부터 100까지사이의 짝수의 누적합은 XXXX입니다.

package day05;
// 1부터 100까지의 짝수의 누적합을 구하시오.
public class Day05Q05 {

	public static void main(String[] args) {
		
		int sum = 0;
		for(int i = 1; i<=100; i++) {
			if(i%2 == 0) {
				sum+= i;
			}
		}
		System.out.println("1부터 100 까지의 짝수의 누적합은 "+ sum +"입니다.");
	}

}
 

6. 입력받은 문자를 대소전환

--------------------------

입력: a

[출력]

a -> A

--------------------------

입력:A

[출력]

A -> a

--------------------------

hint)

// 1. 사용자로부터 문자 한 글자 읽어오기

// 2. 문자의 ASCII 코드 값 구하기

// 3. 이 문자가 소문자 인지 대문자인지 판별

// 4. 대문자 : 65 ~ 90 여기에 + 32 를 하면 소문자 ASCII

// 5. 소문자 : 97 ~ 122 사이 : - 32를 하면 대문자ASCII

// 6. 해당 ASCII의 문자를 화면에 출력

package day05quiz;
// 쌤 풀이
import java.io.IOException;
public class Day05Q3 {

	public static void main(String[] args) throws IOException {

		// 1. 사용자로부터 문자 1글자를 입력 받는ㄴ다.
		System.out.println("입력 : ");
		
		// 2. ASCII를 얻어 온다.
		int value = System.in.read();
		
		// 3. A:65 ~~ 90 ==> 대문자
		//	  a:97 ~~ 122 ==> 소문자
		System.out.println(value);
		
		int result = 0; // 변환 후 문자의 ASCII code 값을 담을 변수
		
		if (value >= 65 && value <= 90) {
			result = value + 32;
		} else if (value >=97 && value <=122) {
			result = value -32;
		}
		System.out.println((char)value + " -> " + (char)result);
	}

}
}
 

 

 

7. 12간지 (switch case 문으로 )

package day05;
import java.util.Scanner;
public class Day05Q07 {
	// 사용자가 태어난 년도 입력하면 12간지 출력
	public static void main(String[] args) {
		
		System.out.println("태어난 년도 4자리 입력 : ");
		
		Scanner sc = new Scanner(System.in);
		int year = sc.nextInt();
				
		switch(year%12) {
			case 4:
				System.out.println("쥐띠");
				break;
			case 5:
				System.out.println("소띠");
				break;
			case 6:
				System.out.println("호랑이띠");
				break;
			case 7: 
				System.out.println("토끼띠");
				break;
			case 8:
				System.out.println("용띠");
				break;
			case 9:
				System.out.println("뱀띠");
				break;
			case 10:
				System.out.println("말띠");
				break;
			case 11:
				System.out.println("양띠");
				break;
			case 12:
				System.out.println("원숭이띠");
				break;
			case 13:
				System.out.println("닭띠");
				break;
			case 14:
				System.out.println("개띠");
				break;
			case 15:
				System.out.println("돼지띠");
				break;
		}
		
	}

}
 

 

8. 잔돈교환기(큰 단위 화폐순으로 )

 

입력 : 67921

50000권 : 1매

10000권 : 1매

5000권 : 1매

1000권 : 2매

500권 : 1개

100권 : 4개

50권 : 0개

10권 : 2개

1원 : 1개

package day05quiz;
import java.util.Scanner;
public class Day05Q8 {

	public static void main(String[] args) {
		
		// 잔돈 교환기
		
		// 1. 여러 자리 숫자를 입력 받는다.
		Scanner sc = new Scanner(System.in);
		
		System.out.println("입력 : "); 
								    
		int money = sc.nextInt();
		System.out.println("입력값 : " + money);
		
		// 2. 화폐 단위로 
		int m50000 = money/50000;        // 67921 / 50000 ==> 1
		int m10000 = money&50000/10000;  // 17921 / 10000 ==> 1
		int m5000 = money%10000/5000;    // 7921 / 5000 ==> 1
		int m1000 = money%5000/1000;     // 2921/1000 ==> 2
		int m500 = money%1000/500;       // 921/500 ===> 1
		int m100 = money%500/100;		 // 421/100 ==> 4
		int m50 = money%100/50;    		 // 21/50 ==> 0
		int m10 = money%50/10;			 // 21/10 ==> 2
		int m1 = money%10/1;			 // 1/1 ==> 1
		
		System.out.println("50000권 : " + m50000 + "매");
		System.out.println("10000권 : " + m10000 + "매");
		System.out.println("5000권 : " + m5000 + "매");
		System.out.println("1000권 : " + m1000 + "매");
		System.out.println("500원 : " + m500 + "개");
		System.out.println("100원 : " + m100 + "개");
		System.out.println("50원 : " + m50 + "개");
		System.out.println("10원 : " + m10 + "개");
		System.out.println("1원 : " + m1 + "개");
	}

}
 

 

9. VendingMachine

-------------------------------------

1. 사용자로부터 숫자를 입력받는다.

동전을 입력하세요: 50000

1. 콜라 : 1200원

2. 사이다:1600원

3. 맥주 : 2500원​

2. 메뉴를 선택하세요 : 2

3. 몇개? 3

4. 사이다 3개

잔돈 : 45200원입니다.

만원 : 4장

오천원 : 1장

백원 : 2개

 

package day05quiz;
// 쌤 풀이
import java.util.Scanner;
public class DayQ9 {

	public static void main(String[] args) {
		
		// 1. 사용자로부터 숫자를 입력 받는다.
		Scanner sc = new Scanner(System.in);
		System.out.println("동전을 입력하세요 : ");
		
		int money = sc.nextInt();
		
		// 2. 메뉴를 선택하게 한다.
		System.out.println("1. 콜라 : 1200");
		System.out.println("2. 사이다 : 1600");
		System.out.println("3. 맥주 : 2500");
		System.out.println("메뉴를 선택하세요 : ");
		int menu = sc.nextInt();
		
		// 3. 수량을 입력 받는다.
		System.out.println("몇개? : ");
		int cnt = sc.nextInt();
		
		// System.out.println(money + ":" + menu + ":" + cnt);
		// 4. 물건 가격을 계산한다.
		int price = 0;
		if(menu ==1) {
			price = 1200*cnt;
			System.out.println("콜라 "+cnt+"개");
		} else if (menu == 2) {
			price = 1600*cnt;
			System.out.println("사이다 "+cnt+"개");
		} else if (menu == 3) {
			price = 2500*cnt; }
			System.out.println("멕주 "+cnt+"개");
		// 5. 입력받은 동전(돈) 에서 물건 가격을 차감한다.
		// 6. 이때 물건 가격이 더 비싸면 잔액부족 메세지를 출력하고 동전은 반환한다.
		// 7. 그렇지 않으면 
		//    물건 출력 메시지를 내보낸 후 잔돈을 반환한다.
		if (money - price < 0) {
			System.out.println("잔액이 부족합니다.");
			System.out.println(money+"원을 반환합니다.");
		} else {
			money -= price;
			System.out.println("잔돈 : "+money+"입니다.");

			int m50000 = money/50000;        // 67921 / 50000 ==> 1
			int m10000 = money%50000/10000;  // 17921 / 10000 ==> 1
			int m5000 = money%10000/5000;    // 7921 / 5000 ==> 1
			int m1000 = money%5000/1000;     // 2921/1000 ==> 2
			int m500 = money%1000/500;       // 921/500 ===> 1
			int m100 = money%500/100;		 // 421/100 ==> 4
			int m50 = money%100/50;    		 // 21/50 ==> 0
			int m10 = money%50/10;			 // 21/10 ==> 2
			int m1 = money%10/1;			 // 1/1 ==> 1
			
			if (m50000 > 0 ) System.out.println("50000권 : " + m50000 + "매");
			if (m10000 > 0 )System.out.println("10000권 : " + m10000 + "매");
			if (m5000 > 0 ) System.out.println("5000권 : " + m5000 + "매");
			if (m1000 > 0 ) System.out.println("1000권 : " + m1000 + "매");
			if (m500 > 0 ) System.out.println("500원 : " + m500 + "개");
			if (m100 > 0 ) System.out.println("100원 : " + m100 + "개");
			if (m50 > 0 ) System.out.println("50원 : " + m50 + "개");
			if (m10 > 0 ) System.out.println("10원 : " + m10 + "개");
			if (m1 > 0 )System.out.println("1원 : " + m1 + "개");
		}

		
	
	}

}