1. switch문으로 오칙연산 계산기 만들기
//변수 선언
int num1 = 0, num2 =0, result = 0;
String op = "";
System.out.println("*** 계산기 ***"); //타이틀 출력
System.out.print("수1 : ");
num1 = scan.nextInt();
System.out.print("수2 : ");
num2 = scan.nextInt();
System.out.print("연산 : ");
//문자열 입력 처리
op = scan.next(); //scan.nextLine();
//입력한 연산 문자로 분기.
switch (op) {
case "+":
result = num1 + num2;
break; //각 case별로 분리
case "-":
result = num1 + num2;
break;
case "*":
result = num1 + num2;
break;
case "/":
result = num1 + num2;
break;
case "%":
result = num1 + num2;
break;
default:
System.out.println("잘못된 연산자 입력!");
result = 0; //생략해도 됨
break;
}//switch 끝
System.out.println("계산 결과 : " + result);
2. if문으로 계산기 처리해보기
나쁜예) 연산기호를 올바르게 비교할 수 없어서 else문만 실행되고 계산결과는 0만 출력됨
Scanner scan = new Scanner(System.in);
//변수 선언
int num1 = 0, num2 =0, result = 0;
String op = "";
System.out.println("*** 계산기 ***"); //타이틀 출력
System.out.print("수1 : ");
num1 = scan.nextInt();
System.out.print("수2 : ");
num2 = scan.nextInt();
System.out.print("연산 : ");
op = scan.next();
if(op == "+") {
result = num1 + num2;
}
else if(op == "-") {
result = num1 + num2;
}
else if(op == "*") {
result = num1 + num2;
}
else if(op == "/") {
result = num1 + num2;
}
else if(op == "%"){
result = num1 + num2;
}
else{
System.out.println("잘못된 연산자 입력!");
result = 0; //생략해도 됨
}
System.out.println("계산 결과 : " + result);
3. switch -> if 변환
- 주의사항: 문자열의 비교
- 문자열은 비교연산자를 사용할 수 없음
- 1형: 문자열변수.equals("비교문자열");
- 2형: 문자열변수1.equal(비교문자열변수2);
- 3형: "비교문자열".equals(문자열변수); -> 꼭 변수를 문자열과 비교 안하고 문자열을 변수와 비교해도 됨
TIP! : //중괄호 끝에 주석으로 중괄호 이름 표시해두면 편함
예시1)
- ==은 정적데이터를 비교하는 연산자이므로 scan받은 값을 비교하면 같지않다로 결과값이 나옴
- abc라는 똑같은 값을 입력받아서 다시 입력했을 때 결과값이 "같지않다"로 나옴
import java.util.Scanner;
public class StringCalculator {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str1 = "abc";
String str2 = "abc"; //String str2 = new String("abc"); 원래는 이런 형식으로 데이터를 만들어주는게 맞지만 String은 많이 쓰이기때문에 new 명령어를 생략할 수 있음
if(str1 == str2) {
System.out.println("같다.");
}
else {
System.out.println("같지않다.");
}
str2 = scan.next();
if(str1 == str2) {
System.out.println("같다.");
}
else {
System.out.println("같지않다.");
}
}
}
예시2)
- .equals()는 동적데이터를 비교해주어서 scan 받은 값과 비교했을 경우 "같다"로 나옴
- equals로 비교하고 abc를 입력해서 비교하면 "같다"로 나옴
import java.util.Scanner;
public class StringCalculator {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str1 = "abc";
String str2 = "abc"; //String str2 = new String("abc"); 원래는 이런 형식으로 데이터를 만들어주는게 맞지만 String은 많이 쓰이기때문에 new 명령어를 생략할 수 있음
if(str1 == str2) {
System.out.println("같다.");
}
else {
System.out.println("같지않다.");
}
str2 = scan.next();
if(str1.equals(str2)) {
System.out.println("같다.");
}
else {
System.out.println("같지않다.");
}
}
}
'JAVA' 카테고리의 다른 글
JAVA(8) - 달력/UP&DOWN/컴파일/디버깅 (0) | 2020.03.09 |
---|---|
JAVA(7) - 반복문/for문/구구단 출력 프로그램/1~100까지의 합 구하기/for문 중첩/제어문 조합 (2) | 2020.03.05 |
JAVA(5) - 조건문/if/else if/학점변환프로그램/if문 중첩/switch (3) | 2020.03.04 |
JAVA(4) - 계산기/인스턴스/구구단/출력형태바꾸기 (1) | 2020.03.04 |
JAVA(3) - 산술 연산자/증감 연산자/비교 연산자/논리 연산자/조건연산자 (1) | 2020.03.04 |