쌍용교육(JAVA)/JAVA

쌍용교육 -JAVA 수업 4일차 While문

구 승 2024. 4. 11. 17:05

While

package kr.s03.operation;

public class WhileMain01 {
	public static void main(String[] args) {
		
		
		//초기값을 지정해줘야됨
		int i =1;
			  //조건식
		while (i<=10) {
							 //증감식 
			System.out.println(i++);
		}
	}
}

1
2
3
4
5
6
7
8
9
10

package kr.s03.operation;

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

1부터 100까지의 합:5050

package kr.s03.operation;

public class WhileMain03 {
	public static void main(String[] args) {
		
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		
		System.out.println("단 입력:");
		int dan = input.nextInt();
		
		System.out.println(dan+"단");
		System.out.println("===========");
		
		int i = 1;
		while(i<=9) {
			
			System.out.println(dan+"*"+i+"="+dan*i);
			i++;
		}
		
		
		
		input.close();
	}
}

단 입력:
2
2단
===========
2*1=2
2*2=4
2*3=6
2*4=8
2*5=10
2*6=12
2*7=14
2*8=16
2*9=18

package kr.s03.operation;

public class WhileMain04 {
	public static void main(String[] args) {
		/*
		 * [실습]
		 * 입력받은 정수값부터 0까지 출력하는 프로그램을 작성하시오.
		 * (0보다 큰 수를 입력하고 0 이하 입력하면 0보다 큰 수를 입력하세요.를 출력)
		 * 
		 * [입력 예시]
		 * 정수 입력:3
		 * 
		 * [출력 예시]
		 * 3
		 * 2
		 * 1
		 * 0
		 * 
		 */
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		
		
		System.out.print("정수 입력:");
		int num = input.nextInt();
		
		if (num > 0) {
			while( num>=0) {
				System.out.println(num--);
				 
			}
			
		}
		else {//0이하 입력
			System.out.println("0보다 큰 수를 입력하세요.");
		}
		
		input.close();
	}
}

정수 입력:3
3
2
1
0

package kr.s03.operation;

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();
	        
	}
}

0전까지 입력받은 정수로 합 구하기
누적할 정수 데이터 입력:3
누적할 정수 데이터 입력:-1
누적할 정수 데이터 입력:0
total =2

package kr.s03.operation;

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();
		
	}
}

0전까지 입력받은 정수로 합 구하기
누적할 정수 입력:3
누적할 정수 입력:-2
누적할 정수 입력:1
누적할 정수 입력:4
누적할 정수 입력:0
total =6

package kr.s03.operation;

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();
	}
}

==================================
1.예금 | 2.출금 | 3.잔고확인 |4. 종료
==================================
메뉴선택 : 1
입금하고자 하는 금액을 입력하시오:3000
==================================
1.예금 | 2.출금 | 3.잔고확인 |4. 종료
==================================
메뉴선택 : 2
출금하고자 하는 금액을 입력하시오:4000
==================================
1.예금 | 2.출금 | 3.잔고확인 |4. 종료
==================================
메뉴선택 : 3
잔고는 -1,000원입니다.
      ==================================
1.예금 | 2.출금 | 3.잔고확인 |4. 종료
==================================
메뉴선택 : 4
프로그램 종료

package kr.s03.operation;

public class WhileMain08 {
	public static void main(String[] args) {
		/*
		 *[실습]
		 *커피 전문점에서 아메리카노가 4,000원입니다.
		 *마실 커피 수량을 정하고 돈을 지불하세요.
		 *지불한 돈에서 발생한 거스름돈을 출력하고 커피의 총 비용보다 
		 *지불한 돈이 적어서커피를 구매할 수 없을 경우 "금액이 부족합니다"
		 *라고 알려준 후 다시 지불할 수 있는 프로그램을 작성하세요.
		 *
		 *(정상적으로 아메리카노를 구매하면 반복문을 빠져나오고 
		 *금액이 부족하면 계속 반복)
		 *
		 *[입력 예시]
		 *구매 수량 입력:1
		 *내가 지불한 금액:5000
		 *or
		 *내가 지불한 금액:3000
		 *
		 *[출력 예시]
		 *거스름돈은 1,000원입니다. -> 반복문을 빠져나감(거스름돈 >=0)
		 *or
		 *1,000원이 부족합니다. -> 계속 반복
		 *
		 */
		java.util.Scanner input =
				new java.util.Scanner(System.in);
		int price = 4000;//커피단가
		int quantity; //수량
		int balance; //거스름돈
		int payment; //지불한 돈
		int total; //총 지불해야 할 금액
		
		
		while(true) {
			System.out.print("구매 수량 입력:");
			quantity = input.nextInt();
			System.out.print("내가 지불한 금액:");
			payment = input.nextInt();
			if (payment < 0) {
				System.out.println("돈을 뺏어가시면 어떡합니까");
			}
			if(quantity>0 && quantity !=0) {
				total = price*quantity;
				balance = payment-total;
				if(total<payment) {
					System.out.printf("거스름돈은 %,d 입니다.",balance);
					break;
				
				}else if(total==payment) {
					
					System.out.println("구매해주셔서 감사합니다.");
				}
				else if (total>payment) {
					System.out.printf("%,d 원이 부족합니다.%n",-1*balance);
				}
				
			}else {
				System.out.println("갯수를 올바르게 입력하시오.");
			}
			
		}
		
		
		input.close();
	}
}

구매 수량 입력:1
내가 지불한 금액:3000
1,000 원이 부족합니다.
구매 수량 입력:1
내가 지불한 금액:5000
거스름돈은 1,000 입니다.