📌 01. 조건문
📖 if문
if(조건식) {}
"조건식을 만족하면 {}의 문장을 실행하라"
정확히는 조건식이 true이면 {}안의 문장을 실행하라는 뜻이다.
int score = 60;
if (score >= 60) {
System.out.println("합격");
}
[출력]
합격
score변수의 값은 60이다.
if문의 조건식인 'score >= 60'을 만족하므로 true가 되고
때문에 if문을 실행할 조건이 충족되었다.
따라서 {}안의 "합격" 이라는 문자열이 출력된다.
📖 else문
위의 if문에선 조건식이 true인 경우만 코드가 실행될 수 있다.
하지만 단지 true인 경우만을 생각해서 코드를 짠다면 제한이 생길 수 있다.
때문에 false인 경우를 생각하기 위해 else문을 사용한다.
else {}
"그 외의 경우엔 {}의 문장을 실행하라"
보통 아래와 같이 if문과 함께 쓰인다.
if(조건식) {
1
}esle { 2 }
"if문의 조건식이 true라면 1을 실행하고 false라면 2를 실행하라"
📖 else if문
쉽게 생각하면 else문의 중첩이다.-
분기문을 작성할때 if문으로 시작하여 작성하고 두번째 분기문부터는 else if문으로 작성한다.
String language = "자바";
if(language.equals('씨')) {
System.out.println("씨를 선택했다.");
}else if(language.equals("자바")) {
System.out.println("자바를 선택했다.");
}else if("파이썬".equals(language)) {
System.out.println("파이썬을 선택했다.");
}else{
System.out.println("모르는 언어를 선택했다.");
}
위의 코드는 if문, else if문, else문을 모두 활용한 예시이다.
language변수의 값이 무엇이냐에 따라 조건식을 위에서 아래로 만족하는 조건을 가진 조건문을 찾아서 들어간다.
위의 language의 변수값은 자바이므로 첫번째 분기문인 if문의 조건식을 만족하지 다음 분기문으로 넘어가게 되고
두번째 분기문인 else if의 조건식을 만족하여 {}안으로 들어가게된다.
결국 "자바를 선택했다."라는 문자열이 출력된다.
📌 02. 선택문
📖 switch문
switch(변수) {
case 1 :
break;
case 2 :
break;
...
default :
}
"전달된 변수를 만족하는 case를 찾아 해당 case의 문단을 실행하라"
변수를 전달받고 case를 순회하며 변수의 값에 해당하는 case가 있는지 찾는다.
case를 찾았다면 이후의 case는 모두 무시된다.
int step = 3;
switch(step) {
case 1:
System.out.print("기");
break;
case 2:
System.out.print("승");
break;
case 3:
System.out.print("전");
break;
case 4:
System.out.print("결");
break;
default:
System.out.println("존재하지 않는 단계");
}
전달받은 변수의 값을 3이다.
case 1과 case2가 무시되고 case3이 실행된다.
case4또한 원하는 경우를 찾았기 때문에 무시된다.
때문에 "전"이라는 문자열이 출력된다.
break의 역할은 무엇일까?
위의 코드에서 break가 없다면 어떻게 될까?
- case3에서 break가 없다고 가정해보자.이유는 간단하다.즉, 위 코드는 "case가 3인 경우를 찾아서 실행을 하고 break를 통하여 switch문을 멈춰주세요"이다.
- 원하는 case를 찾았기 때문에 case4는 무시되고 출력문이 실행되는 것이다.
- "전결"이라는 문자열이 출력될 것이다.
- case1의 break를 지운다면 어떻게 될까?이 또한 switch문의 정의를 안다면 이해할 수 있다.즉, case를 충족하지 못해 다음 case로 넘어가는 것과 case가 무시되는것은 완전히 다른 것이다.
- case1은 아직 원하는 case를 찾지 못한 상태이기 실행되지 않고 다음 case로 넘어가는 것이다.
- 그렇다면 전과 동일하게 "전"이라는 문자열만 출력이 된다.
break문은 swithc문뿐만 아니라 여러 반복문에서 사용될 수 있다.
위의 코드는 정해진 형식은 아니다.
변수의 값이 반드시 숫자일 필요는 없고 마찬가지로 case가 반드시 숫자이면서 case를 넘어갈때마다 하나씩 증가
하는 형태일 필요도 없다.
📌 03. 반복문
📖 while문
while(조건식) {}
"조건식을 만족하는 동안 계속해서 {}을 실행하라"
코드의 형태가 무한으로 루프를 도는 형태라면 오류가 난다.
📖 do-while문
do{
}while(조건식)
"{}실행하라 조건식을 만족하는 동안만"
while문과 똑같아 보이지만 큰 차이점이 있다.
do-while문은 반드시 한번은 실행한다는 것이다.
📖 for문
반복문을 돌리되 시작점과 끝점을 설정할 수 있다.
for(int i=0; i<10; i++) {
System.out.println(i);
}
조건식에 3개의 항이 있다.
첫번쨰 항은 시작점을, 두번째 항은 끝점을, 세번째 항을 반복문을 위해 변수의 값을 변형시키고있다.
조건식을 살펴보면 시작점은 0이고 끝점은 9이고 i를 하나씩 증가시키며 증가할때마다 for문을 한번씩 실행하는
것이다.
즉, i가 0부터 9까지 증가하니 총 10번 실행된다고 볼 수 있다.
조건식의 설정을 자유롭다.
시작점을 0이 아닌 다른 숫자로 잡을 수 있고 i가 증가가 아닌 감소하는 형태로 만들수도 있다.
또한 반복이 된다는 가정하에 항을 생략할수도 있다.
📌 04. 반복문의 중첩
반복문은 중첩해서 사용이 가능하다.
for문안에 또 for문이 올 수도 있고 while문안에 또 while문이 올 수도 있다.
for문안에 while문이 오는것 또한 가능하다.
물론 무한루프를 돌지않고 반복문이 끝나는 시점이 있다는 가정하에 이다.
또한 불필요한 반복문의 중첩은 좋지 않은 코드이기 때문에 신중히 써야 한다.
가장 대표적인 예시로 구구단 예제를 실행해보자.
// 2단부터 9단까지 출력
for(int i = 2; i <= 9; i++){
for(int j = 1; j <= 9; j++){
System.out.print(i + "*" + j "=" + i*j +"\t");
}
System.out.println("");
}
i는 단을 나타내는 변수이다.
때문에 2단부터 9단까지 표현할 것이므로 시작점이 2, 끝점이 9인 상태로 하나씩 증가한다.
j는 단에 1부터 9까지 차례대로 곱해지는 수이다.
때문에 시작점이 1, 끝점이 9인 상태로 하나씩 증가한다.
'Java > Java Fundamental' 카테고리의 다른 글
Day07_String (0) | 2021.10.18 |
---|---|
Day06_자바의 날짜 (1) | 2021.10.18 |
Day05_입출력과 랜덤값 (2) | 2021.10.18 |
Day03_연산자 (0) | 2021.10.14 |
Day02_타입과 형 변환 (1) | 2021.10.13 |