Switch문
https://kwanghyung.tistory.com/9
Printf문
Printf 출력문에 대해서 얘기하고자 합니다. printf문은 형식값을 주기 때문에 연산자가 들어있어 형식을 간단히 나타내거나, 오른쪽 정렬, 왼쪽 정렬, 소수점자리에서의 반올림등을 설정 할 수
kwanghyung.tistory.com
https://kwanghyung.tistory.com/7
Scanner 클래스로 입력 받기
Scanner클래스? 스캐너 클래스에서 입력을 받는 것을 해보겠습니다. 스캐너 클래스에서 함수를 사용하기 위해서는 import문으로 선언합니다. 위의 import문은 java에 있는 util에 있는 Scanner 클래스를
kwanghyung.tistory.com
Switch문
switch문을 통해서 if문, if-else문, if-else-if문과 함께 상황에 따라서 써야 합니다.
switch문과 if문의 차이점
if (조건식) => 조건식을 복잡하게 기술 가능, 값의 범위를 설정 가능합니다.
switch => 조건식 X, 확실한 값만 기술 가능,( 동등비교만 수행 할 수 있습니다.
즉, if문은 조건식을 비교 (>,<,==)등등을 할 수있지만, switch문은 확실한 값만 기술 할 수 있습니다.
switch(아래에 기술할 값들과 동등비교를 할 대상자) {
case 값 1: 실행할 코드1; (대상자 ==값1과 동등할때 즉 true일때 실행할 코드)
break; (=> switch영역을 빠져나간다.)
case 값 2: 실행할 코드2; (대상자 ==값2와 동등할때 즉 true일때 실행할 코드)
break;
......
case 값 n: 실행할 코드n; (대상자 ==값 n과 동등할때 즉 true일때 실행할 코드
default : 실행할 코드; (if-else문에서 else의 역할과 동일하게 작동되는 실행 부분)
(case1~N까지 대상자와 일치하지 않는 경우 실행한다. break적지 않음)
예시 1) Scanner메소드로 정수를 입력 받아 홀수 짝수 판별
정수를 입력 받아 홀수, 짝수 판별입니다. if문을 사용한다면 num%2==0, num%2==1 라는 조건식을 사용하는데 num%2를 동등비교 할 대상자로 넣고, case문에 그 값을 0,1을 넣습니다.
예시 2) Scanner메소드로 주민번호를 입력받아 남자,여자, 잘못된 주민번호를 입력하셨습니다로 분류
Break문을 주목해야한다. case문을 사용할때 무조건 case마다 사용할 필요가 없습니다. 예를 들어 위의 경우 1,3일때는 남자입니다. 이 경우 출력해야되는 구문 System.out.println("남자입니다.") 와 break문을 한번에 묶어서 사용하면 코드를 줄일 수 있습니다.
case '1' :
case '3' : System.out.println("남자입니다.");
break;
또 주의해야 할 점은 gender변수는 char형이기 때문에 case구문에서 숫자를 1이 아닌 '1'로 받아야합니다.
예시 3) Scanner메소드로 과일의 이름을 받아 각 과일의 가격 출력
사과 1000원 오렌지 2000원 망고 5000원을 switch문으로 구현합니다. 여기서 포인트는 price 변수를 먼저 선언합니다. 그리고 각 스위치문에서 다시 초기화를 합니다. switch를 입력 받은 fruit 변수를 통해서 받습니다. Default는 else입니다. 마지막으로 printf문을 fruit 변수와 price 변수를 통해 출력합니다.
예시 3) Scanner메소드로 국어 수학 영어 점수를 받아 각 점수가 40점 초과, 평균 60점 초과일시 합격, 아니면 불합격
예시 3) Scanner메소드로 정수를 입력 받아 월에 따른 계절구분
예시 3) Scanner메소드로 피연산자1,2를 입력 받아 연산 하는 메소드
피연산자가 양수임을 가정하고, op 변수를 통해 case 구문을 나누었습니다. result구문을 통해 case마다 값을 다시 초기화합니다. printf문을 사용하면 println보다 간단히 정리할 수 있습니다.
다음 똑같은 문제를 if문을 사용할 수 있는데 if문이 나은지 switch문이 나은지 비교해서 사용해보세요.
If문은 연산자를 받는 op를 equals 메소드를 사용하여 합니다. ==와 equals의 차이는 ==는 기본자료형에서 동등비교연산자일때 사용하고, 문자열을 비교할때는 equals를 사용합니다. 문자열.equals("비교할 문자");로 사용합니다.
equals는 string 클래스에서 object 클래스의 원래 메소드에서 오버라이딩하여 재정의된 메소드입니다. 그러므로 문자열비교할때 사용하신다고 생각하시면 됩니다.
'자바-자린이의 도전기' 카테고리의 다른 글
for문 예제 (0) | 2022.03.22 |
---|---|
For문 (0) | 2022.03.21 |
if else 문/if else if문 (0) | 2022.03.19 |
제어문 if문 (0) | 2022.03.18 |
New 연산자 (0) | 2022.03.17 |