2022. 8. 16. 11:46ㆍJava 프로그램
오늘은 제어문 중 조건문인 if와 switch를 공부해 보겠습니다.
일단 제어문이 필요한 이유는 코드의 실행 흐름을 개발자가 원하는대로 제어할 수 있음을 위해 사용합니다.
코드가 실행되는 중간에 어떤 코드를 뛰어 넘을수 있고 혹은 원하는 과정에 따라 원하는 결과를 도출할수도 있기 때문에 필수적인 요소입니다. 또한 코딩을 할 때 많이 쓰이기도 하기 때문에 오늘 면밀하게 알아 보겠습니다.
조건문에는 두가지가 있습니다. 바로 if문과 switch문 인데요 if문 부터 알아보겠습니다.
If문
if(조건식){
실행할 코드
}
if문의 형식은 위와 같습니다. if다음의 괄호안에 조건식을 입력합니다. 만약 이 조건식의 논리연산이 TRUE라면 밑에 있는 실행할 코드가 실행되고 FALSE라면 실행되지 않고 건너 뛰게 됩니다.
public class Operator {
public static void main(String[] args) {
int a=10;
if(a>1) {
System.out.println("a는 1보다는 큰 숫자입니다.");
}
}
}
if문의 조건식에서는 a가 1보다 큽니까? 라고 조건을 걸었습니다. 제가 정수형 타입인 a변수에 10의 값을 넣어놨습니다.
그렇다면 조건식은 true기 때문에 if문 안에있는 출력코드가 실행이 되어 console창에 나오는것을 확인할 수 있습니다.
If~else문
if문은 else라는 것이 존재합니다. 조건식이 아니라면 실행할 코드를 지정해주는 건데 바로 예시로 보겠습니다.
public class Operator {
public static void main(String[] args) {
int a=10;
if(a>11) {
System.out.println("a는 11보다는 큰 숫자입니다.");
}else {
System.out.println("a는 11보다 작은 숫자입니다.");
}
}
}
if의 조건식은 a>11입니다. 제가 a의 값을 10으로 정해놨기 때문에 if의 조건식은 false가 나옵니다. 그렇다면 if문 안에 있는
실행 코드는 실행되지 않을거라는걸 알수 있을겁니다. 그 다음 else안에 있는 "a는 11보다 작은 숫자입니다." 가 출력되는 것을 콘솔창에서 확인 할 수 있습니다.
if~else를 통해 복수의 조건식을 둘 수 있고 중첩 if문을 사용할 수 도 있습니다.
import java.util.Scanner; //입력을 받기위해 Scanner를 위한 import
public class Operator {
public static void main(String[] args) {
Scanner input = new Scanner(System.in); //입력을 위한 Scanner사용
System.out.println("a를 입력하세요");
int a = input.nextInt(); //a의 값을 console창에서 입력받음
if(a>6) {
if(a>9) {
if(a>11) {
System.out.println("a가 11보다 큰 숫자입니다.");
}else {
System.out.println("a가 11보다는 작고 9보다 큰숫자 입니다.");
}
}else {
System.out.println("a가 6보다는 크고 9보다는 작은 숫자입니다.");
}
}else {
System.out.println("a는 6보다 작은 숫자입니다.");
}
}
}
if문을 3개 중첩 시킨 코드입니다. a가 6보다크고 9보다도 크며 11보다 크면 a>11의 조건식을 가진 if문의 코드를 실행하고, 만약 a>11이 false라면 첫번째 else문을 출력합니다. 9보다 작은 숫자가 입력 되면 두번째 else문이, 6보다도 작은 숫자를 입력하면 마지막 else문이 실행되는 형식입니다.
이제 이것과는 조금 다른 형태인 else if~문을 보겠습니다.
import java.util.Scanner;
public class Operator {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("a를 입력하세요");
int a = input.nextInt();
if(a>100) {
System.out.println("a는 100보다 큰 숫자 입니다.");
}else if(a<100) {
System.out.println("a는 100보다 작은 숫자 입니다.");
}else if(a==100) {
System.out.println("a는 100입니다.");
}
}
}
else if문을 통해 각각 다른 조건에 true일 때 실행할 코드를 다르게 기입한 것을 실행한 결과 입니다.
이제 switch문을 알아보도록 하겠습니다.
switch문
switch(변수){
case 1:
~~~~~
case 2 :
~~~~~~
}
의 형식입니다. switch문은 조건식이라기 보단 변수의 값을 나눠서 실행할 코드를 지정해주는 방식이라고 볼수 있습니다.
public class Operator {
public static void main(String[] args) {
int diceNumber = (int) (Math.random()*6) +1; // diceNumber는 1~6까지의 랜덤숫자
//(int)는 실수형태인 Math.random()*6을 정수형으로 바꾸기 위한 강제 형변환
System.out.println("diceNumber = " + diceNumber);
switch(diceNumber) {
case 1 : // if(diceNumber ==1)이라는 것과 같다.
System.out.println("주사위 1이 나왔습니다.");
break;
case 2 : // if(diceNumber ==2)이라는 것과 같다.
System.out.println("주사위 2이 나왔습니다.");
break;
case 3 : // if(diceNumber ==3)이라는 것과 같다.
System.out.println("주사위 3이 나왔습니다.");
break;
case 4 : // if(diceNumber ==4)이라는 것과 같다.
System.out.println("주사위 4이 나왔습니다.");
break;
case 5 : // if(diceNumber ==5)이라는 것과 같다.
System.out.println("주사위 5이 나왔습니다.");
break;
//case 6:
default: //else와 같은 역할
System.out.println("주사위 6이 나왔습니다.");
break;
}
}
}
switch문을 이용하여 실행 할 때마다 주사위를 던진것 처럼 1~6까지의 랜덤 숫자가 변수에 입력되도록 하였습니다.
그 후 switch문에서 주사위 숫자가 각가 다른 상황에 따라 출력하는 코드가 다르게 case로 나누었고 마지막은 else처럼
Default를 사용하여 마무리하였습니다.
switch문은 항상 case가 끝날때마다 break를 입력하여 switch문을 나와야 합니다.
오늘은 제어문, 그 중에서도 조건문을 알아봤습니다. 부족하지만 감사합니다.
'Java 프로그램' 카테고리의 다른 글
문자열 : String (0) | 2022.08.18 |
---|---|
반복문(for, do-while, while)2 +(break, continue) (0) | 2022.08.17 |
반복문(for, do-while, while) (0) | 2022.08.17 |
자바의 연산자 (0) | 2022.08.16 |
자바의 시작: 변수와 타입 및 escape문자 (0) | 2022.08.10 |