[day04]

1. 조건문 switch
다중 선택문 : 하나의 변수값을 평가하여, 각 값에 대해 개별적인 처리를 하는 문장.

1) 구조
switch(변수){
case 값1 :  // 값1과 변수의 값이 동일한 경우 아래 샐행문들 실행~
실행문들....
break; // 위 실행문들을 실행하고 switch 강제종료!!
case 값2 : 
실행문들....
break;
case 값3 : 
실행문들....
break;


...
default : 
실행문들....
break; // 마지막 break는 생략가능
}

2) 특징과 주의점
1. switch 문으로 평가 할 수 있는 변수는 주로 정수형, String
(int, char, String) 

2. case 다음에는 반드시 값이 하나가 와야한다.
3. case 0 : .... case 2 : ... 와 같이 반드시 값을 정렬할 필요없다.
4. dafault 는 생략가능
5. case 별로 {}로 묶지 않는다. 콜론 : 으로 영역 인식.
6. 다음 case가 실행되지 않도록 할 경우에는 

2. 반복문 while
1) 조건식을 먼저 검사한 후, 실행하는 반복문 (루프)
2) 실행문 영역 {}안에서 반복(루프)를 종료할 수 있게 만들어 줘야한다.
3) 구조
#1. 반복의 횟수를 알때
변수 = 초기값;
while(조건식){
// 반복해서 실행할 명령문 작성
증감식;
}

#2. 무한반복 : 반복횟수가 달라질때
while(true){
반복해서 실행할 명령문.....
if(조건){break;} //종료시점이 반드시 필요함!!!
}

3. 반복문 do-while  (잘 안씀)

선 실행 후 비교 : 실행 먼저한 후 조건 검사하는 형태

1) 구조
do {
// 반복해서 실행할 명령문...
}while(조건식); // ; 꼭붙일것


4. 반복문 for 
지정된 수만큼 반복할때 사용

1) 구조
                     1         2       4 
for(초기식; 조건식; 증감식;){
// 반복해서 실행할 명령문들....  3
}


1번 -> 2번(조건이 참이면) -> 3번 -> 4번 -> (2 -> 3 -> 4) -> 2번 (거짓-> 종료!)
초기식 : for 문 처음 시작할때 한번만 실행.
조건식 : 결과가 true/ false 되도록
증감식 : 1씩 증/감 할때는 증감연산자(++;) 주로 사용  

package day04;
import java.util.Scanner;

public class Test30 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
		Scanner sc = new Scanner(System.in);
		System.out.print("정수 입력>>");
		int num = Integer.parseInt(sc.nextLine());
		
		switch(num) {
			case 1 : 
				System.out.println("1을 입력하셨습니다");
				break;
				
			case 2 :
				System.out.println("2을 입력하셨습니다");
				break;
				
			case 3 :
				System.out.println("3을 입력하셨습니다");
				break;
				
			default :
				System.out.println("1.2.3이 아닌 숫자를 입력하셨습니다");
				break;
			
		}
		System.out.println("프로그램 종료!!");
		sc.close();
	}
}
package day04;

public class Test31 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//char ch = 'A';
		String str = "A" ;
		switch(str) {
		
		case "A" : 
			System.out.println("AAA");
			break;
		case "B" : 
			System.out.println("BBB");
			break;
		case "C" : 
			System.out.println("CCC");
			break;
	
	/*	case 'B' : 
			System.out.println("BBB");
			break;
			
		case 'C' : 
			System.out.println("CCC");
			break;
				*/
		}	
	}
}
package day04;
import java.util.Scanner;
public class Test32 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
			
			// *switch 문제 *
			// 문제 1. 정수를 입력받아 3~5는 "봄" 6~8은 "여름",
			//	9~ 11은 "가을", 12 ~2는 "겨울" 을 출력하세요.
	/*	
		System.out.println("정수를 입력하세요");
		Scanner sc = new Scanner(System.in); 	
		int season = sc.nextInt();
		
		switch(season/3) {
			case 1 :
				System.out.println("봄");
				break;
			case 2 :
				System.out.println("여름");
				break;
			case 3 :
				System.out.println("가을");
				break;
				
			case 4 :
				System.out.println("가을");
				break;
			*/
	
		
		
		
			// 문제 2. 점수를 입력받고 90~ 100은 "수", 80~ 89는 "우"
			// 70 ~ 79는 " 미" 60 ~ 69 "양", 그 이하는 "가"를 출력하세요.
	/*
	
	
                 70~79 -> "미"
String str = "A" 

		switch(str) {
		
		case "미" : 
			System.out.println("AAA");
			break;
		case "B" : 
			System.out.println("BBB");
			break;
		case "C" : 
			System.out.println("CCC");
			break;
	
	
	
		System.out.println("정수를 입력하세요") ;
		Scanner sc1 = new Scanner(System.in); 	
		int score = sc1.nextInt();
		


		switch (score/10) { 
			case  : 10 , case 9 :
				System.out.println("수");
				break;

			case  : 8
				System.out.println("우");
				break;
		}
				
				*/
		
			// 문제 3. 덧셈 +, 뺄셈 -, 곱셈 *, 나눗셈/ 중 원하는 기호를 선택하여 
			//	a, b의 연산 결과값을 출력해보세요.
		

		System.out.println("정수를 입력하세요") ;
		Scanner sc1 = new Scanner(System.in); 	
		String op  = sc1.nextLine();
		int a = 10; int b= 5;
		switch(op) {
		case "+" :
			System.out.println(a + b);
			break;
			
		case "-" :
			System.out.println(a - b);
			
		case "*" :
			System.out.println(a * b);
			
		case "/" :
			System.out.println(a / b);
			
			dafault :
				System.out.println("사칙연산이 아닙니다");
		}
	}
}

 

package day04;

import java.util.Scanner;

public class Test33 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
		/*
		 * 
		#1. 반복의 횟수를 알때
		변수 = 초기값;
		while(조건식){
			// 반복해서 실행할 명령문 작성
			증감식;
		}

		#2. 무한반복 : 반복횟수가 달라질때
		while(true){
			반복해서 실행할 명령문.....
			if(조건){break;} //종료시점이 반드시 필요함!!!
		}
		 */
		
		int a = 0;   // 초기식
		while(a<=4) {
			// 반복할 명령어
			System.out.println("안녕하세요" + a);
			a++; // 증감식
			
		}
		// 0 ~ 5 출력
		int n  = 0;
		while (n <=5) {
			System.out.println(n);
			n++;
		} 
	
	}
}

 

package day04;

import java.util.Scanner;

public class Test34 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		/*
		#1. 반복의 횟수를 알때
		변수 = 초기값;
		while(조건식){
			// 반복해서 실행할 명령문 작성
			증감식;
		}

		#2. 무한반복 : 반복횟수가 달라질때
		while(true){
			반복해서 실행할 명령문.....
			if(조건){break;} //종료시점이 반드시 필요함!!!
		}
		 */
		
		
		//while 무한반복
		//숫자 0을 입력받을때 까지 계속 정수를 입력받아 출력하세요.
		//
		
		Scanner sc = new Scanner(System.in);
		System.out.println("숫자입력");
		
		while(true) {
			int num = Integer.parseInt(sc.nextLine());
			if(num==0) {
				System.out.println("종료");
				break;
			}
		}
	}
}
package day04;

import java.util.Scanner;

public class Test35 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
//문제 1. 0~ 10 까지 출력해보세요
		/*
		int a = 0;
		while(a<11) {
			System.out.println(a);
			a++;
		}
//문제 2. 1~ 15 까지 출력해보세요
		int b = 1;
		while(b<=15) {
			System.out.println(b);
			b++;
		}
//문제 3. 0~ 100 까지 10단위로 출력해보세요
		int c = 1;
		while(c<=10) {
			System.out.println(c*10);
			c++;
		
		
		int c = 0;
		while(c<=100) {
			System.out.println(c);
			c+= 10;
		}


		/*
		#2. 무한반복 : 반복횟수가 달라질때
		while(true){
			반복해서 실행할 명령문.....
			if(조건){break;} //종료시점이 반드시 필요함!!!
		}
		
		
		
		
//문제 4. 1~ 20 까지 홀수만 출력해보세요
		int d = 1;
		while(d<=10) {
			System.out.println(d*2-1);
			d++;
		}
		
		int d = 1;
		while(d<=20) {
			if(d%2==1){
			System.out.println(d);
			}
		d++;
		}
		
		
			
		
		*/
//문제 5. 1~ 10 까지 총합을 출력해보세요
		// 1 2 3 4 5 6 7 8 9 10
	/*
		   int sum = 0;
	        int i = 1;
	        
	        while (i<=10) {
	            sum =sum + i; // (sum += i;)
	          
	            i++;
	            
	        }
	            System.out.println(sum);
	        }
				 */
			
//문제 6. 1~ 50 까지 짝수의 합 출력해보세요
	 /*
		int tot = 0;
      int i = 1 ;
      
      	while (i<=25) {
          tot =(tot + (i*2));
          i++;
          
      	}
      	System.out.println(tot);
      */
				/*
	  
	      int i = 0;
	      int tot = 0;
	      
	      while(i <= 50) {
	         if(i % 2 == 0) {
	            tot += i;
	         	}
	          i++;
	      }
	      System.out.println(tot);
	   
*/
		
		

					
// 주문 프로그램 		
// 1.아메리카노 2500/		
// 2. 카페라떼 3000/		
// 3. 카푸치노 3500/		
// 4. 카라멜마끼아또 4000/		
// 5. 샌드위치 6000/		
// 6. 종료 		
		//  1. 단계 위 메뉴를 출력하고, 번호로 주문을 받는다.
		//  주문 종료를 선택할때까지 계속 주문을 받고 
		//  주문 받은 모든 메뉴의 총 금액을 출력한 후 종료
		//   2단계 : int money = 20000; (내돈). 
        //   주문시, 내 돈에서 주문한 금액 차감, 돈이 부족하면 주문 못하게, 
        //   주문 종료시 주문한 총 금액과 내 돈의 잔액까지 출력. 

		System.out.println
				("1."+ "아메리카노 2500"+"\n" +		
				 "2."+ "카페라떼 3000 "+"\n" +	
				 "3."+ "카푸치노 3500 "+"\n" +	
				 "4."+ "카라멜마끼아또 4000"+"\n" +	
				 "5."+ "샌드위치 6000" +"\n" +	
				 "6."+ " 주문종료");
		Scanner sc = new Scanner(System.in);
		int tot = 0; // 주문 총금액
		int money = 20000;
		while(true) {
			System.out.println("주문 번호를 입력하세요");
			int num = sc.nextInt();
				if(num == 1) {
						System.out.println("아메리카노를 주문하셨습니다" ); tot += 2500;
					}else if(num == 2) {
						System.out.println("카페라떼를 주문하셨습니다" ); tot += 3000;
					}else if(num == 3) {
						System.out.println("카푸치느를 주문하셨습니다" );	tot += 3500;
					}else if(num == 4) {
						System.out.println("카라멜 마끼아또를 주문하셨습니다" );	tot += 4000;
					}else if(num == 5) {
						System.out.println("샌드위치를 주문하셨습니다" );	tot += 6000;
					}else if(num == 6) {
						System.out.println("총 금액은"+ tot + " 입니다");
						break;
					}else //if(num == 0 || num >6) 
						{
						System.out.println("잘못입력하셨습니다");
						}				
				if(money-tot<0) {
				System.out.println("잔액이 부족합니다");
				
				}
			
		System.out.println("남은 잔액은" + (money - tot) + "입니다");
		
		}
	


		/*
		#2. 무한반복 : 반복횟수가 달라질때
		while(true){
			반복해서 실행할 명령문.....
			if(조건){break;} //종료시점이 반드시 필요함!!!
		}
		
		 
		sc.close();
		*/
			
		
	}
}

 

package day04;

public class Test36 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
		int num = 0; // 초기식
		do {
			System.out.println("hello");
			num++; //증감식
		}while(num <1); //조건식
		
	}
}

 

package day04;

public class Test37 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
		
		//5번 반복
	//	for (int i= 0; i < 5 ; i++ ) {
	//		System.out.println("hello");
			
			
		
		
		//0~10까지 출력
	//	for (int i = 0; i<=10; i++) {
	//		System.out.println(i);
	//	}
		
		
		// #1. for문 안에서 만들어진 i 변수는 밖에서 사용 불가
		//System.out.println(i); for문 안에서만 i 동작함  -> i는 지역변수
		
		// #2. i를 밖에서도 사용하고 싶으면 밖에 선언하고 사용
	//	int i = 0 ;
		
		
		
		// #3. 초기값 생략 : 밖에서 먼저 만들어놓은 변수라면 for문 안에서 초기식 생략가능 *단 반드시 세미콜론은 작성
		// for (//(int i = 0); i < 10 ; i++ ){}
		
		// #4. 무한반복
		// for ( ;  ; ){}      == while(true)   가독성 면에서 무한반복은 while을 더 많이씀 for은 쓰다만 느낌
		
		
		// break, continue
		for (int a = 0; a < 10 ; a++) {
			if(a ==5) {
				//break; //강제종료 -> 반복문 종료
				continue; // 다음 동작으로 건너뜀 -> 아래 출력안하고, 증감식으로 가버림
			}
			
		 	System.out.println(a);	
		
		}
	}

}
package day04;

import java.util.Scanner;

public class Test38 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
 //1. 10- 30 까지 출력
 //2.		10 - 100까지 10단위 출력
 //3.		1 - 20 짝수만 출력		
//4.		1- 100까지 홀수의 총합 출력
//5.		정수 1개를 입력받고, 1부터 입력받은 수까지의 합 출력
		/*
		for (int i = 10 ; i <= 30 ; i++ ) {
		System.out.println(i);
		}
		
		//2번
		for (int i = 0; i<= 100 ; i +=10) {
			System.out.println(i);
		}
		
		
		//3번
		for (int k = 0; k<= 20 ; k ++) {
			if (k%2==0) {
				System.out.println(k);
			}
		}
		
		//4번
		int tot = 0; 
		for(int i = 0; i<=100 ; i++) {
			
			if(i%2==1) {
				
				tot += i;
				
			}
			
		}
		System.out.println("홀수의 합은 : " + tot);
		
		
		*/
		/*
		//5.		정수 1개를 입력받고, 1부터 입력받은 수까지의 합 출력
		Scanner sc = new Scanner(System.in);
		int i = 0;
		System.out.println("정수를 입력하세요>");
		int num = sc.nextInt();
		int tot = 0;
		for(; i <= num; i++) {
			tot += i;
			
		}
		
		System.out.println(tot);
		*/
		/*
		Scanner sc = new Scanner(System.in);
		
		System.out.println("정수를 입력하세요>");
		int i = sc.nextInt();
		int tot = 0;
		for( ;0< i ; i-- ) {
			tot += i;
		}
		System.out.println(tot);
		*/
		
		// 0을 입력할때 까지 입력받고, 입력받은 모든 총합을 마지막에 출력하세요.
		Scanner sc = new Scanner(System.in);
		
		System.out.println("정수를 입력하세요>");
		
		int tot = 0;
		for(; ; ) {
			int num = sc.nextInt();
			if(num==0) {
			break;	
			}
			tot+= num;
			
			System.out.println(tot);
		}
		
	}
	

}



'P-Language > [Java]' 카테고리의 다른 글

[Java] 6 - 다차원 배열  (0) 2022.06.03
[Java] 5 - 배열  (0) 2022.06.03
[Java] 3 - 연산자, 제어문, 조건문  (0) 2022.06.03
[Java] 2 - 변수와 입,출력문  (0) 2022.06.03
[Java] 1 - 환경 변수와 자바의 기본  (0) 2022.06.03

+ Recent posts