[java] 조건문 (if / if else / 다중 if else / switch )
Updated:
조건문이란?
조건문은 프로그래밍에 있어서 가장 중요하고 강력한 문법입니다. 조건문을 이용하여 조건의 True , False 값을 판단하고, 각각 다른 작업을 수행할수 있게 합니다.
Java 조건문의 종류
단순 if 문
자바의 if 조건문 구조도 입니다. 단순 if문은 조건식이 ‘True’일 때만 실행하는 문장을 작성합니다. 아래 코드 예제를 통해 확인해 봅시다.
if (조건식) {
실행문장
}
java의 if문에 코드는 위와 같습니다. if 뒤 ( ) 안에 조건을 입력한 후 { }사이에 조건식이 참일때 실행할 문장을 작성하면 됩니다.
int n = 4;
if(n%2 == 0){
System.out.println(n + "은 짝수입니다.");
}
위 예제에서는 if문 뒤 ( )안에 n을 2로 나누었을 때 나머지가 0 일경우를 조건으로 입력하였고, =우리는 n값이 4라고 선언했기 때문에 조건이 True 가 되어서 “4 은 짝수입니다.” 라는 결과값이 나오는 것 입니다.
if else 문
자바의 if else 조건문 구조도 입니다. if else 문은 조건식이 True일때와 False 일 때 실행하는 문장들을 작성합니다 아래 코드예제를 통해 확인해 봅시다.
if(조건식){
실행문장1
}
else {
실행문장2
}
java의 if else 문의 코드는 위와같습니다. if문과 동일하게 작성한 후 else {} 사이에 실행할 문장을 작성하면 됩니다.
import java.util.Scanner;
public class MultipleOfThree {
public static void main (String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("수를 입력하시오: ");
int number = in.nextInt();
if (number % 3 == 0){
System.out.println("3의 배수입니다.");
}
else{
System.out.println("3의 배수가 아닙니다.");
}
scanner.close();
}
}
위 예제를 통해 확인해보면 숫자를 입력받아 3으로 나누웠을때 나머지가 0인경우는 3의 배수입니다.를 출력시켰고, 아닌경우는 3의 배수가 아닙니다를 출력시켰습니다.
다중 if else 문
자바의 다중if else 조건문 구조도 입니다. 다중 if else 문은 조건식이 여러개일때 사용합니다.
ìf (조건식 1) {
실행문장 1; // 조건식 1이 참인경우
}
else if (조건식 2){
실행문장 2; // 조건식2가 참인경우
}
else if (조건식 m){
..........// 조건식 m 이 참인경우
}
else{
실행문장 n; // 앞의 모든 조건이 거짓인 경우
}
조건 A 가 True 면 조건 A에 맞는 실행문장을 실행시키고 if문을 빠져나옵니다. 하지만 조건 A가 False면 조건 B를 확인하고 True 면 조건 B에 맞는 실행문장을 실행시키고 if 문을 빠져나옵니다. 이와 같은 절차를 조건문이 없을때까지 반복하는게 if else 문입니다.
import java.util.Scanner;
public class MyCalculator
{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String breaker;
float a;
float b;
System.out.print("계산식>>");
a = sc.nextFloat();
breaker = sc.next();
b = sc.nextFloat();
int i_a;
int i_b;
int i_result_p;
int i_result_m;
int i_result_mu;
int i_result_d;
i_a = (int)a;
i_b = (int)b;
i_result_p = (int) i_a + i_b;
i_result_m = (int) i_a - i_b;
i_result_mu = (int) i_a * i_b;
if(breaker.equals("+")){
System.out.println(""+i_a+" " + breaker +" "+i_b +"의 계산결과는" +" " +(i_result_p));
}
else if(breaker.equals("-")){
System.out.print(""+i_a+" " + breaker +" "+i_b +"의 계산결과는" +" " +(i_result_m));
}
else if(breaker.equals("*")){
System.out.print(""+i_a+" " + breaker +" "+i_b +"의 계산결과는" +" " +(i_result_mu));
}
else if((breaker.equals("/")) && (b != 0)){
System.out.print(""+i_a+" " + breaker +" "+i_b +"의 계산결과는" +" " +(a / b));
}
else if(b == 0){
System.out.println("“0으로 나눌 수 없습니다!”");
}
else{
System.out.println("잘못된 수식을 입력하였습니다.");
}
}
}
다중 else if 문을 활용하여 간단한 계산기를 만들어 보았습니다. 위와같이 여러개의 조건식이 필요하다면 else if 문을 활용하시면 됩니다.
Switch 문
Switch 조건문의 구조도 입니다. 보통 조건문이 너무 많은경우는 switch 문을 사용합니다.
switch (식){
case 값1:
실행문장 1;
break;
case 값2:
실행문장 2;
break;
case 값 m
실행문장 m;
break;
default:
실행문장 n;
}
Switch 조건문은 case의 비교 값과 일치하면 해당 case의 실행문장을 수행합니다. 항상 주의해야할 점은 실행문장을 수행한 후 switch문을 빠져나올 수 있게 break를 써주어야 합니다. 만약 case의 조건문과 일치하는게 아무것도 없다면 default문을 실행합니다. 단 default문은 생략할 수 있습니다.
public class MyCaculator
{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String breaker;
float a;
float b;
System.out.print("계산식>>");
a = sc.nextFloat();
breaker = sc.next();
b = sc.nextFloat();
switch (breaker){
case ("+"):
System.out.print(a + b);
break;
case ("-"):
System.out.print(a - b);
break;
case ("*"):
System.out.print(a * b);
break;
case ("/"):
if (b == 0) {
System.out.print("we can't do it");
break;
}
System.out.print(a / b);
break;
default :
System.out.print("we can't do it");
}
}
}
위의 예제를 살펴보면 switch 문의 식은 breaker로 계산식을 입력받았을 때 부호가 들어간 문자열입니다. 예를들어 1 + 2 라고 입력을 했다면, 자바는 공백으로 문장을 구분하기때문에 a 에는 1이 breaker 에는 + 가 b 는 2각 들어가게되죠.
그리고 case 에서 breaker의 문자열이 어떤것인지 확인하고 각 문자열에 맞게 사측연산을 실행한 후 break 를 통해 조건문을 나오게 합니다.
여기서 만약 break를 하지 않는다면, + , - , * , / 모두를 실행한 결과값이 출력됩니다! 꼭 주의하세요!
Leave a comment