728x90
switch ~ case 문

 

if와 else ~ if 문의 또 다른 형태

각 조건을 case의 값과 비교해서 결과가 true이면 조건을 빠져나간다.

switch의 조건 값의 타입은 수치형일 경우는 int이하만 가능 (long, 실수형 사용 불가)

문자열도 조건 값으로 가능.

 

ex)

switch(검색변수) {
case 조건1 : 
    조건1이 true시 실행할 문장;
    break;
case 조건2:
    조건2가 true시 실행할 문장;
    break;
default:
    나열된 case의 조건이 모두 false일때 기본적으로 실행되는 문장;
    break;
}

 


예제 1.

<주민등록번호 뒷자리 첫번째 번호를 입력하고 태어난 년도와 성별이 무엇인지 출력>

Scanner sc = new Scanner(System.in);
System.out.println("주민등록번호 뒷자리 첫번째 번호 입력");
	
int year = 0, code;        //년도, 성별코드
String sex;                //성별을 저장
code = sc.nextInt();
		
switch (code) {
case 1:
case 2:
	year = 1900;
	break;

case 3:
case 4:
	year = 2000;
	break;
			
default:
	System.out.println("잘못 입력했습니다.");
	System.exit(0);        //프로그램 종료
}
sex = code % 2 == 0 ? "여성" : "남성" ;
//      조건식      ?   참   :  거짓  ;
		
System.out.println("당신은 " + year + "년도에 태어난 " + sex + "입니다." );

[실행결과]

주민등록번호 뒷자리 첫번째 번호 입력
1
당신은 1900년도에 태어난 남성입니다.

예제 2.

<직급에 따라 올라갈 수 있는 층 입력>

  • 직급은 사장, 부장, 과장, 대리, 사원, 알바 로 나눈다
  • 직급이 높을수록 더 높은 층 까지 올라갈 수 있다
Scanner sc = new Scanner(System.in);
System.out.println("당신의 직급을 입력하세요.");
System.out.println("1.사장\t2.부장\t3.과장\t4.대리\t5.사원\t6.알바");

int input = sc.nextInt();
System.out.print("당신은 ");
switch (input) {
case 1:
	System.out.print("6층");
	break;
case 2:
	System.out.print("5층");
	break;
case 3:
	System.out.print("4층");
	break;
case 4:
	System.out.print("3층");
	break;
case 5:
	System.out.print("2층");
	break;
default:
	System.out.print("1층");
	break;
}
System.out.println(" 까지 올라갈 수 있습니다.");

[실행결과]

당신의 직급을 입력하세요.
1.사장 2.부장 3.과장 4.대리 5.사원 6.알바
4
당신은 3층 까지 올라갈 수 있습니다.

'JAVA' 카테고리의 다른 글

Do While  (0) 2021.07.06
While  (0) 2021.07.06
스캐너 (Scanner)  (0) 2021.07.06
for  (0) 2021.07.06
Math.random  (0) 2021.07.06
728x90
키보드 입력 전용 클래스

 

사용자에게 값 입력 받기

 

사용시 필수적으로 import 해주어야 한다.

 

  1. next() :
    문자열을 입력받음
    띄어쓰기 불가능
    space를 만나면 종료

  2. nextLine() :
    문자열을 입력받음
    띄어쓰기 가능
    Enter를 만나면 종료

  3. nextInt() : 
    int 타입 반환함수

  4. nextDouble() :
    double 타입 반환함수

 

ex)

import java.util.Scanner;                        //Scanner 클래스 import하기

public class Input01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);     //Scanner속성의 sc변수 생성
        System.out.println("숫자를 입력하세요");
        
        int input = sc.nextInt();                //nextInt 변수로 입력받은 후 input 변수에 대입

        if (input > 5) {                         //조건식1이 참일때 실행할 명령문
            System.out.println("5보다 큽니다.");
        } else if(input < 5){                    //조건식1이 거짓이고 조건식2가 참일때 실행할 명령문
            System.out.println("5보다 작습니다.");
        } else if(input == 5){                   //위 조건식이 모두 거짓일때 실행할 명령문
            System.out.println("5입니다.");
        }
    }
}

[실행결과]

숫자를 입력하세요
6
5보다 큽니다.

'JAVA' 카테고리의 다른 글

While  (0) 2021.07.06
스위치 (Switch)  (0) 2021.07.06
for  (0) 2021.07.06
Math.random  (0) 2021.07.06
데이터 스코프  (0) 2021.07.06
728x90
반복문 (Loop문)

 

필요에 따라서 특정 문장을 반복적으로 실행해야 할 때 사용

반복문의 종류 : for(forEach), while, do ~ while

ex)

for(변수 초기화; 변수 조건문; 변수 증감식) {
    변수 조건문이 참일 때 실행할 문장;
}

 


예제 1.

<0이상 10이하의 짝수의 합 출력하기>

int result = 0;                        //정수인 변수 result 선언

for (int i = 0; i <= 10; i++) {        //0부터 10까지 반복
    if(i % 2 == 0) {                   //만약 반복하는 수가 짝수일 때
    result += i;                       //변수result에 i값을 더한다
    }
}
System.out.println(result);

[실행결과]

30

예제 2.

<트리만들기>

for (int i = 0; i < 5; i++) {
	for (int j = 4; j > i; j--) { 		// 스페이스바 4개 -> 0개
		System.out.print(" ");
	}
	for (int j = 0; j < i * 2 + 1; j++) { 	// 별 1개 -> 9개
		System.out.print("*");
	}
	System.out.println(""); 		// 엔터
}

[실행결과]

    *
   ***
  *****
 *******
*********

예제 3.

<숫자맞추기>

  • 컴퓨터가 1이상 100 이하의 숫자를 랜덤으로 지정.
  • 사용자가 숫자를 입력하면 UP / DOWN을 출력하고, 일치한다면 "축하합니다" 라고 하면서 출력 종료하는 프로그램
  • 최대 20번 반복
int random = (int) (Math.random() * 99 + 1);
	
Scanner sc = new Scanner(System.in);
		
for (int i = 0; i < 20; i++) {
	System.out.println("숫자를 입력하세요.");

	int input = sc.nextInt();

	if(input < random) {			//컴퓨터 지정 숫자가 더 클 경우
		System.out.println("UP");
	}else if(input > random) {		//컴퓨터 지정 숫자가 더 작을 경우
		System.out.println("DOWN");
	}else {					//컴퓨터 지정 숫자와 동일할 경우
		System.out.println("축하합니다");
		break;
	}
}
sc.close();					// 스케너 닫기

[실행결과]

숫자를 입력하세요.
50
DOWN
숫자를 입력하세요.
20
UP
숫자를 입력하세요.
40
UP
숫자를 입력하세요.
45
DOWN
숫자를 입력하세요.
42
UP
숫자를 입력하세요.
43
축하합니다

예제 4.

<Fizz Buzz>

  • 1부터 25사이의 숫자를 프린트 하는 프로그램
  • 3의배수이면 "Fizz"를, 5의배수이면 "Buzz"를, 15의 배수이면 "FizzBuzz"를 출력
for (int i = 1 ; i <= 25; i++) {
	if(i % 3 == 0 && i % 5 == 0) {
		System.out.println("FizzBuzz");
	}else if(i % 3 == 0) {
		System.out.println("Fizz");
	}else if(i % 5 == 0) {
		System.out.println("Buzz");
	}else {
		System.out.println(i);
	}
}

[실행결과]

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz

예제 5.

<구구단>

  • 1 ~ 9 단 출력
for (int i = 1; i < 10; i++) {					//1 ~ 9단
	System.out.println(i + "단");
	for (int j = 1; j < 10; j++) {				//*1 ~ 9				
	System.out.printf("%d X %d = %d\n", i, j, i * j);					
	}
	System.out.println("");					//단이 끝나면 한 줄 비우기
}

[실행결과]

1단
1 X 1 = 1
1 X 2 = 2
1 X 3 = 3
1 X 4 = 4
1 X 5 = 5
1 X 6 = 6
1 X 7 = 7
1 X 8 = 8
1 X 9 = 9

2단
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18

3단
3 X 1 = 3
3 X 2 = 6
3 X 3 = 9
3 X 4 = 12
3 X 5 = 15
3 X 6 = 18
3 X 7 = 21
3 X 8 = 24
3 X 9 = 27

4단
4 X 1 = 4
4 X 2 = 8
4 X 3 = 12
4 X 4 = 16
4 X 5 = 20
4 X 6 = 24
4 X 7 = 28
4 X 8 = 32
4 X 9 = 36

5단
5 X 1 = 5
5 X 2 = 10
5 X 3 = 15
5 X 4 = 20
5 X 5 = 25
5 X 6 = 30
5 X 7 = 35
5 X 8 = 40
5 X 9 = 45

6단
6 X 1 = 6
6 X 2 = 12
6 X 3 = 18
6 X 4 = 24
6 X 5 = 30
6 X 6 = 36
6 X 7 = 42
6 X 8 = 48
6 X 9 = 54

7단
7 X 1 = 7
7 X 2 = 14
7 X 3 = 21
7 X 4 = 28
7 X 5 = 35
7 X 6 = 42
7 X 7 = 49
7 X 8 = 56
7 X 9 = 63

8단
8 X 1 = 8
8 X 2 = 16
8 X 3 = 24
8 X 4 = 32
8 X 5 = 40
8 X 6 = 48
8 X 7 = 56
8 X 8 = 64
8 X 9 = 72

9단
9 X 1 = 9
9 X 2 = 18
9 X 3 = 27
9 X 4 = 36
9 X 5 = 45
9 X 6 = 54
9 X 7 = 63
9 X 8 = 72
9 X 9 = 81

예제 5 - 1.

<구구단 특정 단 출력>

  • 짝수인 단만 출력
for (int i = 1; i < 10; i++) {					//1 ~ 9단
	if(i % 2 != 0) {					//i가 홀수일 때 
    	continue;						//위 반복문으로 돌아가기
    }
    System.out.println(i + "단");
	for (int j = 1; j < 10; j++) {				//*1 ~ 9				
	System.out.printf("%d X %d = %d\n", i, j, i * j);				
	}
	System.out.println("");					//단이 끝나면 한 줄 비우기
}

[실행결과]

2단
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18

4단
4 X 1 = 4
4 X 2 = 8
4 X 3 = 12
4 X 4 = 16
4 X 5 = 20
4 X 6 = 24
4 X 7 = 28
4 X 8 = 32
4 X 9 = 36

6단
6 X 1 = 6
6 X 2 = 12
6 X 3 = 18
6 X 4 = 24
6 X 5 = 30
6 X 6 = 36
6 X 7 = 42
6 X 8 = 48
6 X 9 = 54

8단
8 X 1 = 8
8 X 2 = 16
8 X 3 = 24
8 X 4 = 32
8 X 5 = 40
8 X 6 = 48
8 X 7 = 56
8 X 8 = 64
8 X 9 = 72

'JAVA' 카테고리의 다른 글

스위치 (Switch)  (0) 2021.07.06
스캐너 (Scanner)  (0) 2021.07.06
Math.random  (0) 2021.07.06
데이터 스코프  (0) 2021.07.06
if  (0) 2021.07.06
728x90
Math.random( ) 0이상 1미만의 랜덤한 값

 

ex)

<1이상 6미만의 랜덤한 수 100번 출력하기>

for (int i = 0; i < 100; i++) {                //100번 반복
    double random = Math.random() * 5 + 1;     //1.0이상 6.0미만의 랜덤한 실수(double)값 random
    int number = (int) random;                 //1이상 6미만의 랜덤한 정수(int)값 number
}

 

'JAVA' 카테고리의 다른 글

스캐너 (Scanner)  (0) 2021.07.06
for  (0) 2021.07.06
데이터 스코프  (0) 2021.07.06
if  (0) 2021.07.06
연산자  (0) 2021.07.06

+ Recent posts