본문 바로가기

웹 개발/Java

[Web_JAVA] 07

switch문

switch(변수명) {

case 값1:

    실행할 문장;

    break;

case 값2:

    실행할 문장;

    break;

case 값3:

    실행할 문장;

    break;

case 값4:

    실행할 문장;

    break;

    ...

default:

    실행할 문장;

    break;

}

 

 실행할 문장이 중복된다면 case를 한 줄에 작성할 수 있다.

switch(변수명) {

case 값1: case 값2:

    실행할 문장;

    break;

}

 

 

 

● 삼항 연산자, if문, switch문 비교

- 삼항 연산자 : 조건식이 1개 있을 경우 사용

- if문 : 조건식에 비교(>, <, >=, <=) 연산자를 사용하거나, 여러 개의 조건식을 논리 연산자(&&, ||)로 연결할 때 사용

- switch문 : 하나의 변수에 여러 개의 값이 담기는 상황에서 특정 값과 같은 지 비교를 할 때 사용

 


 

● 대입 연산자(복합 대입 연산자, 누적 연산자)

- +=, -=, /=, *=, %=, ...

(ex) int money = 10000;

      money -= 1000; // money = money - 1000

      System.out.println(money);

 

(ex) int data = 10;

      data += 1; // data = data + 1;

      System.out.println(data);

 

 

 

● 증감 연산자

- ++, --

1. 전위형

- 해당 라인부터 바로 적용된다.

(ex) ++data, --data

 

2. 후위형

- 다음 라인부터 적용된다.

(ex) data++, data--

 

※ 둘 다 사용해도 되는 상황에서는 후위형을 쓰도록 한다.

 


 

● 반복문

1. for문

- 조건식이 true일 때 반복하고, false일 때 종료한다.

for(초기식; 조건식; 증감식) {

    실행할 문장

}

 

 

 

● for문의 동작 순서

1. 초기식

2. 조건식

3. 실행

4. 증감식

5. 조건식

6. 실행

7. 증감식

...

 


 

실습(switch문)

1. 아래 내용을 참고하여 심리 테스트 프로그램 작성하기

※ 참고

/* 
 * Q. 당신이 좋아하는 색을 선택하세요.
 * 1. 빨간색
 * 2. 노란색
 * 3. 검은색
 * 4. 흰색
 * 
 * 빨간색 : 불같고 열정적이고 적극적이다.
 * 노란색 : 발랄하고 밝고 귀엽고 개성있고 유하다.
 * 검은색 : 묵묵하고 든든하고 냉철하고 멋지다. 그리고 강하다.
 * 흰색 : 천사같고 깔끔하고 정리를 좋아하고 배려심이 많다.
 */

 

 

- 코드

import java.util.Scanner; 

public class SwitchTest {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		String qMsg = "Q. 당신이 좋아하는 색을 선택하세요.\n"
							+ "1. 빨간색\n"
							+ "2. 노란색\n"
							+ "3. 검은색\n"
							+ "4. 흰색\n";
		
		String redMsg = "불같고 열정적이고 적극적이다.";
		String yellowMsg = "발랄하고 밝고 귀엽고 개성있고 유하다.";
		String blackMsg = "묵묵하고 든든하고 냉철하고 멋지다. 그리고 강하다.";
		String whiteMsg = "천사같고 깔끔하고 정리를 좋아하고 배려심이 많다.";
		String errMsg = "다시 시도해주세요";

		int choice = 0;  // 사용자가 입력한 값을 담는 변수를 0으로 초기화하여 선언한다.
		String result = "";
		
		System.out.print(qMsg);
		choice = sc.nextInt();  // 사용자에게 값을 입력받아 choice 변수에 담아준다.
		
		switch(choice) {
		case 1:  // choice 변수의 값이 1일 때
			result = redMsg;  // result 변수에 redMsg 값을 담아준다.
			break;  // 즉시 switch문을 종료한다.
		case 2:
			result = yellowMsg;
			break;
		case 3:
			result = blackMsg;
			break;
		case 4:
			result = whiteMsg;
			break;
		default:
			result = errMsg;
			break;
		}
		System.out.println(result);
	}
}

 

1 입력 시 결과

 

1~4 외의 수 입력 시 결과

 

 

 

실습(증감 연산자)

1. 전위형

public class Oper5 {
	public static void main(String[] args) {

		int data = 10;
		System.out.println(++data);  // 증감값을 바로 적용하여 출력한다.

	} 
}
 
결과

 

 

 

2. 후위형

public class Oper5 {
	public static void main(String[] args) {

		int data = 10;
		System.out.println(data++);  // 증감값을 바로 적용하여 출력하지 않는다.

	} 
}

 

결과

 

 

 

 

실습(for문)

1. 1~100까지 출력

import java.util.Scanner;

public class ForTask {
	public static void main(String[] args) {

		for(int i = 0; i < 100; i++) {
			System.out.println(i + 1);  // 처음 출력되는 수가 1이 되야한다(0 + 1)
		}
		
	}
}

 

결과

 

 

 

2. 100~1까지 출력

import java.util.Scanner;

public class ForTask {
	public static void main(String[] args) {

		for(int i = 0; i < 100; i++) {
			System.out.println(100 - i);  // 100 - 0, 100 - 1, 100 - 2, ...
		} 
		
	}
}

 

결과

 

 

 

 

3. 1~100까지 중 짝수만 출력

import java.util.Scanner;

public class ForTask {
	public static void main(String[] args) {

		for(int i = 0; i < 50; i++) {  // 50번 반복
			System.out.println((i + 1) * 2);  // (0 + 1) * 2
		} 
		
	}
}

 

결과

 

 

 

4. 1~10까지 합 출력

import java.util.Scanner;

public class ForTask {
	public static void main(String[] args) {

		int total = 0;  // 1~10까지의 합을 담아줄 변수
		for(int i = 0; i < 10; i++) {
			total = total + i + 1;  // 0 + 0 + 1, 1 + 1 + 1, ...
		}
		System.out.println(total); 
		
	}
}

 

결과

 

 

 

 

5. 1~n까지 합 출력

import java.util.Scanner;

public class ForTask {
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int num = 0, sum = 0;
		System.out.print("1부터 입력한 값 까지의 합 출력 >> ");
		num = sc.nextInt();
		
		for(int i = 0; i < num; i++) { 
			sum = sum + i + 1;
		}
		System.out.println(sum);
		
	}
}

 

결과
 

 

 

6. A~F까지 출력(65 ~ 70)

import java.util.Scanner;

public class ForTask {
	public static void main(String[] args) {

		for(int i = 0; i < 6; i++) {  // A ~ F : 6번 반복
        
			//char 타입으로 변환하여 출력한다. 
			System.out.println((char)(65 + i));  // 65 + 0, 65 + 1, ...  
		}
		
	}
}

 

결과

 

 

 

 

7. A~F중 C제외하고 출력(C를 제외한 문자 5개를 출력하기 위해서 5번 반복 진행)

import java.util.Scanner;

public class ForTask {
	public static void main(String[] args) {

		for(int i = 0; i < 6; i++) {
        
			// A, B : 0, 1 -> i + 65   // C ~ F : 2 ~ 6 -> i + 66
			System.out.println((char)(i > 1 ? i + 66 : i + 65)); 
		}
		
	}
}

 

결과

 

 

 

 

8. 0 1 2 3 0 1 2 3 0 1 2 3 출력

import java.util.Scanner;

public class ForTask {
	public static void main(String[] args) {

		for(int i = 0; i < 12; i++) { 
			System.out.print(i % 4 + " ");  // i를 4로 나눈 후의 나머지를 출력한다.
		}
		
	}
}
 
결과

 

 

 

9. aBcDeFg...Z 출력

import java.util.Scanner;

public class ForTask {
	public static void main(String[] args) {

		for(int i = 0; i < 26; i++) {
			System.out.print((char)(i % 2 == 0 ? 97 + i : 65 + i));  // 97~ : 소문자, 65~ : 대문자
		}
		
	}
}

 

결과

 

 

 

 

 

 

 

 

 

 

 

'웹 개발 > Java' 카테고리의 다른 글

[Web_JAVA] 09  (0) 2022.02.23
[Web_JAVA] 08  (0) 2022.02.22
[Web_JAVA] 06  (0) 2022.02.20
[Web_JAVA] 05  (0) 2022.02.19
[Web_JAVA] 04  (0) 2022.02.18