[ITWILL : java]Scanner라이브러리와 equals()를 이용한 사칙연산계산기, if문과 switch문 변환 예시, 반복문과 break
ITWILL학원 : 3강 JAVA BY 윤미영강사
1. Scanner 라이브러리
기능 : 키보드로부터 데이터를 받아온다.
java.util 패키기에 있는 중요한 라이브러리이므로 사용법은 암기필수.
1 | //1. 선언 |
다른 명령어들은 아래와 같다
1 | sc.nextInt() |
2. Scanner 라이브러리를 이용한 사칙연산계산기 만들기
처음 떠오른 코드는 아래와 같다.
1 | Scanner sc = new Scanner(System.in); |
그런데 string으로 연산자를 받으니까 연산이 되지않으니까 int로 형을 바꿀려고했는데 Cannot cast from String to int
에러가 났다.
사칙연산자들의 데이터타입이 무엇인지 구글링했는데 그래도 잘 모르겠어서
강사님께 여쭈어보니 string을 int로 받아도 해결할 수 없다고 한다.
if문을 써서 equals()를 쓰는게 낫다고 했다
equals()를 어떻게 쓰는지 찾아본 뒤 바로 적용해보았다
1 | Scanner sc = new Scanner(System.in); |
작동 잘된다! 역시 가르쳐주는 사람이 있으니까 좋다
switch문으로 바꾸어보자
1 | switch(operator){ |
3. 제어문 종류
- 조건문
- if(조건문)
- switch(값)
- 반복문
- for(반복횟수)
- while(조건식)
4. 조건문 : Switch문
정수식안에는 변수, 숫자, 문자, 조건들이 들어갈 수 있다.
case안의 값에는 and연산자, Boolean, 실수는 아예 들어갈 수 없다.break;
문이 없을 경우 다음 break;
를 찾을때까지 모든 문장을 실행한다.
default문은 가장 마지막 작업으로 위의 case 이외의 값인 경우 default문은이 출력되고 Switch문은 끝난다
1 | switch( 정수식 ){ //숫자,문자 |
예시
1 |
|
5. 조건문 : switch문과 if문 비교
임의의 노래방 점수를 터미널에 입력하면 점수대별로 아래 문구를 출력하고싶다.
100점의 문구 : 실화냐? 가수다! 가수가 나타났다!
80 ~ 99점의 문구 : 노래실력이 아주 좋으신데요~
40 ~ 79점의 문구 : 매력이~ 넘쳐요
40점미만의 문구 : 노ㄹ..아니 박수실력이 나날이 늘어가네요!
그외의 점수들 : 잘못된 숫자를 입력하셨습니다.다시 입력해주세요
if일때
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Scanner sc = new Scanner(System.in);
System.out.println("점수를 입력하세요");
int inputScore = sc.nextInt(10);
if (inputScore == 100){
System.out.println("WOW " + inputScore + "점 실화냐? 가수다! 가수가 나타났다!");
}else if(inputScore >= 80 && inputScore < 100 ){
System.out.println(inputScore + "점! 노래실력이 아주 좋으신데요~");
}else if(inputScore >= 40 && inputScore < 80 ){
System.out.println("내 노래 점수는 " + inputScore + "점! 매력이~ 넘쳐요");
}else if(inputScore < 40 && inputScore >= 0){
System.out.println(inputScore + "점! 노ㄹ..아니 박수실력이 나날이 늘어가네요!");
}else{
System.out.println("잘못된 숫자를 입력하셨습니다.다시 입력해주세요");
}switch일때
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22switch(inputScore/10){
case 10 :
System.out.println("100점 실화냐? 가수다! 가수가 나타났다!");
break;
case 9 :
case 8 :
System.out.println("노래실력이 아주 좋으신데요~");
break;
case 7 :
case 6 :
case 5 :
ystem.out.println("매력이~ 넘쳐요");
break;
case 4 :
case 3 :
case 2 :
case 1 :
System.out.println("노ㄹ..아니 박수실력이 나날이 늘어가네요!");
break;
default :
System.out.println("잘못된 숫자를 입력하셨습니다.다시 입력해주세요");
}
6. 반복문 : for문
for문의 기본은 아래와 같다
1 | for(int i=0; 조건식; 증감식){ |
간단한 예시를 보면서 어떻게 컴파일이 되는지 순서를 보자
1 | for(int i=1; i<10; i++){ |
- 조건문 확인 : i는 1이고 10보다 작다 ->true
- 괄호안의 코드출력
- 증감식 확인 : 이제 i는 2
- 조건문 확인 : i는 2이고 10보다 작다 ->true
- 괄호안의 코드출력
- 증감식 확인 : 이제 i는 2
- 계속반복
- 조건문 확인 : i는 10이고 10보다 작다 -> false
- for문 종료
7. 반복문 : break
반복문에서 break를 사용하면 반복문이 바로 종료된다.
구구단 3단 예시를 들어보자
1 | int multiply; |
출력값의 마지막 컴마를 없애고 싶다.
어떻게 하면 좋을까? if와 break를 사용해보자.
1 | int multiply; |
break를 입력하면 if조건이 만족되는 순간 바로 반복문이 종료된다
아래 예시는 구구단 3단 나타내지만 if조건문을 5까지 입력했다
즉 3*5
까지 진행하는 구구단이다.
1 | int multiply; |
x가 6,7,8,9가 남았지만 if조건을 만족하고 break때문에 반복문이 종료된다.