제어문
제어문은 위에서 아래로만 흐르던 코드의 흐름을 제어하기 위해 사용하는 문장이다.
제어문은 크게, 조건문(선택제어문)과 반복문(반복제어문)으로 나누어진다.
01 조건문
조건문이란, 말 그대로 주어진 조건에 따라 다른 문장을 선택할 수 있도록 프로그래밍하는 것을 말한다.
조건문은 아래와 같은 상황에서 사용한다.
▪ 조건에 따른 경우의 수를 나눌 때 사용
▪ 흐름을 나눌 때 사용
▪ 선택지를 주어줄 때 사용
▪ 특정한 상태 물어볼때 사용
ex) 입력한게 3이니? 비밀번호가 "apple"이니?
1) if문
다음과 같은 상상을 해 보자. "돈이 있으면 택시를 타고 가고 돈이 없으면 걸어 간다."
프로그래밍도 위처럼 조건을 판단해서 그 상황에 맞게 처리해야 할 경우가 생기게 된다.
이렇듯 조건을 판단하여 해당 조건에 맞는 상황을 수행하는데 쓰이는 것이 바로 if문이다.
위와 같은 상황은 아래의 코드처럼 표현할 수 있다 :)
int myMoney = 0;
if(myMoney < 3000){
System.out.println("돈이 없습니다. 걸어가세요");
}else{
System.out.println("택시를 타러 가볼까요~?");
}
▪ if문의 기본구조
if(조건식){
조건식이 참일 때 실행
}
else{
위의 조건식이 거짓일 때 실행
}
조건문이 참이면 if문의 문장들을 수행하고 조건문이 거짓이면 else문의 문장들을 실행한다.
▪ if ~ else if 문
if문의 기본구조만으로는 다양한 조건을 판단할 수 없다. 이 점을 보완하기 위해 사용할 수 있는것이 else if이다.
첫번째 if 조건식이 거짓일때만 else if문으로 이동하며, else if도 거짓인 경우에는 else의 값을 출력한다.
if(조건식1){
조건식1이 참일 때 실행
}else if(조건식2){
조건식2가 참일 때 실행
}
.... else if 갯수 제한 X > 즉, 이제 경우의수가 여러가지여도 가능하다
else{
위의 조건식들이 전부 거짓일 때 실행
}
맨 처음에 적은 택시 예제를 else if로 응용하자면 아래와 같이 할 수 있다.
"돈이 5000원 이상이라면 택시를 타고, 1500원이상 5000원 미만이라면 버스를 타고, 그 외에는 걸어가야한다 "
Scanner sc = new Scanner(System.in);
int myMoney = sc.nextInt();
if(myMoney>=5000) {
System.out.println("택시를 타자!");
}
else if(1500<=myMoney&& myMoney<5000) {
System.out.println("버스를 타자!");
}
else {
System.out.println("돈이 없으니 걸어가자(;′⌒`)");
}
결과
1000
돈이 없으니 걸어가자(;′⌒`)
5000
택시를 타자!
2880
버스를 타자!
2) switch~case~default문
▪ if문은 다수의 비교 연산자를 사용하여 조건을 판단하는 반면, switch문은 여러 case중 일치하는
특정값을 찾아내기 쉬운 조건문이다.
▪ 경우의 수가 어떤 한 변수의 값을 등가 비교로 인해서 나눠야 할 때 사용한다.
▪ 변수에 담긴 값에 따라 알맞은 case로 이동하고 문장을 실행한다.
하지만 그 밑에 case가 더 있다면 그안에 있는 문장들도 실행된다.
따라서 각 케이스들을 나누어 주려면 알맞게 break(기타연산자) 를 사용해야한다.
▪ case 중 맞는 값이 없으면 default의 값이 실행된다.
▪ switch문의 기본구조
switch(변수){
case 값1:
변수의 값이 값1 일때 실행
case 값2:
변수의 값이 값2 일때 실행
....
default:
변수의 값이 위의 값들이 아닐 때 실행
}
▪ switch문을 활용하여 만든 혈액형 테스트 (✿◡‿◡)
Scanner sc = new Scanner(System.in);
System.out.print("당신의 혈액형은?");
String type = sc.next();
String result = "";
switch(type){
case "A":
result = "A형인 당신은 감수성이 뛰어나며 공감능력이 극대화 되어있습니다.";
break;
case "B":
result = "B형인 당신은 생각이 기발하고 창의적 입니다.";
break;
case "O":
result = "O형인 당신은 동글동글하며 친화력이 좋습니다.";
break;
case "AB":
result = "AB형인 당신은 은근 꼼꼼하고 세심합니다.";
break;
default:
result = "혈액형이 아닙니다. 다시 입력하세요.";
}
System.out.println(result);
기타연산자
break;
속해있는 switch문이나 반복문을 탈출한다.
만약에 if문 안에 break가 있다면, if문을 감싸고 있는 switch나 반복문을 탈출하게 된다.
누적 대입 연산자(복합 대입 연산자, 누적 연산자)
누적 대입 연산자는 코드를 효율적으로 줄일 수 있는 연산자로, 누적값을 구할 때 많이 사용한다.
a += 10 = a = a + 10
a -= 10 = a = a - 10
a *= 10 = a = a * 10
a /= 10 = a = a / 10
a %= 10 = a = a % 10
예시
int money = 10000;
int pocketMoney = 5000;
int foodExpenses = 2000;
money += pocketMoney; // money = 15000
money -= foodExpenses; // money = 13000
증감 연산자
값이 1씩 증가하는 경우에 사용하는 연산자로 +와-만 사용가능하다.
1) 전위형
int data = 0
++data;
--data;
위의 코드와 같은 형태로, 해당 줄 부터 바로 적용된다.
2) 후위형
int data = 0;
data++;
data--;
위의 코드와 같은 형태로, 다음 줄 부터 적용된다.
▪ 전위형 후위형 예시
int data = 0;
// 전위형
System.out.println(++data); // 1
System.out.println(data); // 1
data = 0;
// 후위형
System.out.println(data++); // 0
System.out.println(data); //1
'프로그래밍 > JAVA' 카테고리의 다른 글
10 For문을 사용한 문제 풀이 (0) | 2021.03.30 |
---|---|
09 제어문_반복문(while문,do~while문, 무한반복, for문) (0) | 2021.03.26 |
07 연산자 (0) | 2021.03.24 |
06 형변환(자동 형변환, 강제 형변환, 문자열 형변환) (0) | 2021.03.23 |
댓글