0615
문제 1.
키보드로부터 연산자를 입력 받아 두 수에 대해 연산을 실행하는 프로그램을 switch문을 이용하여 작성하시오.
Ex)
수식 입력(수와 연산자 사이는 공백을 둘 것) : 8 + 9
8 + 9 = 17
소스
import java.util.Scanner;
public class SwitchExam1 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.print("수식 입력(수와 연산자 사이는 공백을 둘 것) : ");
int num = sc.nextInt();
String op = sc.next();
int num2 = sc.nextInt();
switch(op) {
case "+" : System.out.println(num+" + "+num2+" = "+(num+num2)); break;
case "-" : System.out.println(num+" - "+num2+" = "+(num-num2)); break;
case "*" : System.out.println(num+" * "+num2+" = "+(num*num2)); break;
case "/" : System.out.println(num+" / "+num2+" = "+(num/num2)); break;
}
}
}
소스 풀이
- 순서대로 피연산자, 연산자, 피연산자 변수를 입력받을 변수를 지정하고 저장한다.
- switch문을 사용하여 입력한 연산자에 따라 연산을 달리 출력한다.
- break문을 사용하여 한 결과값만 출력할 수 있도록 한다.
출력 결과
Ex) 3 / 3 을 입력했을 경우
수식 입력(수와 연산자 사이는 공백을 둘 것) : 3 / 3
3 / 3 = 1
문제 2.
키보드로부터 연산자를 입력 받아 두 수에 대해 연산을 실행하는 프로그램을 if문을 이용하여 작성하시오.
Ex)
피연산자1을 입력하시오 : 1
피연산자2를 입력하시오 : 1
연산자를 입력하시오 : +
1 + 1 = 2
소스
import java.util.Scanner;
public class IfExam2_1 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.print("피연산자1을 입력하시오 : ");
int a = sc.nextInt();
System.out.print("피연산자2를 입력하시오 : ");
int b = sc.nextInt();
System.out.print("연산자를 입력하시오 : ");
char op = sc.next().charAt(0);
if( op=='+') {
System.out.println( a+" + "+b+" = "+(a+b) );
}
else if( op=='-') {
System.out.println( a+" - "+b+" = "+(a-b) );
}
else if( op=='*') {
System.out.println( a+" * "+b+" = "+(a*b) );
}
else if( op=='/') {
System.out.println( a+" / "+b+" = "+(a/b) );
}
else {
System.out.println("사칙연산자가 아닙니다.");
}
}
}
소스 풀이
- 피연산자1을 입력한 값을 변수 a에 저장합니다.
- 피연산자2를 입력한 값을 변수 b에 저장합니다.
- 연산자를 입력한 값을 변수 op에 저장합니다.
이 때 char는 Scanner사용이 불가하므로 next()뒤에 .charAt(0)를 입력해줍니다.
- if문을 사용하여 op == '연산자' 에 해당하는 if문의 실행문을 실행합니다.
- 연산자가 아닌 값을 입력했을 경우에 "사칙연산자가 아닙니다." 를 출력합니다.
출력 결과
Ex) 1, 2, + 를 입력했을 경우
피연산자1을 입력하시오 : 1
피연산자2를 입력하시오 : 2
연산자를 입력하시오 : +
1 + 2 = 3