조건문과 반복문
Java에서 코드는 흐름에 따라 위에서 아래로 한 문장씩 순차적으로 진행 될 수도 있지만, 조건에 따라 문장을 건너뛰고 때로는 같은 문장을 반복해서 수행할 수 있다. 조건에 따라 코드를 진행할 수 있는건 조건문, 같은 문장을 반복 수행하는 것은 반복문이라 한다.
조건문은 예, 아니오의 조건을 만족할 때만 수행된다. 예를들면, 60점 이상이면 합격이라는 명제가 있다면 '예'라는 조건에 해당하는 60이상의 점수를 받았을 때 값이 출력된다. 조건문은 if, swich문을 사용한다.
위의 예는 score가 60이 초과 된다면 "합격입니다.", "축하드립니다."가 출력된다. 그래서 if 다음 '()'에는 조건식이 오고 '{}'에는 조건식에 따른 결과물이 나온다.
if (조건식) {
//조건식이 참(true)일 때 수행될 문장을 적는다.
}
블럭
조건식 '()'다음에 '{}'에 결과물이 출력된다고 했는데 '{}'을 블럭이라고 부른다.
블럭 안의 문장들은 탭을 이용하여 들여쓰기를 선택적으로 사용할 수 있다. 탭키를 활용하면 더욱 보기 좋기 때문에 들여쓰기 하길 추천한다. 블록 안에는 다양한 수의 문장들이 들어온다. 만약 문장이 하나가 올 경우 블럭을 생략하기도 한다.
if-else문
다양한 조건식이 올 경우 if문도 다양한 조건식이 올 수 있다. 하지만 if문이 많아지면 코드가 복잡해지는 불편함이 있다. 이를 해결하기 위한 조건문으로 if-else문이 있다.
'else'는 '그 밖의 다른'이라는 의미를 가지고 있다. 그래서 조건식에 해당하지 않을 경우 else이하의 문장이 수행된다.
if(input=0) {
System.out.println("0"입니다.");
}
if(input!=0) {
System.out.println("0이 아닙니다.");
}
위의 코드는 두 개의 조건식을 사용했지만 if-else문을 쓰면 두 개의 조건식을 하나의 조건식으로 바꿔 쓸 수 있다.
if(input==0) {
System.out.println("0입니다.");
} else {
System.out.println("0이 아닙니다.");
if-else if문
앞서 살펴 본 if-else문은 두 개의 조건을 내세웠지만, 단지 두 가지 조건만 내세울 수 있을까? 3가지, 4가지는 불가능 할까? 가능하다.
if (조건식1) {
//조건식1의 연산결과가 참일 때 수행될 문장들을 적는다.
} else if (조건식2) {
//조건식2의 연산결과가 참일 때 수행될 문장들을 적는다.
} else if (조건식n) {
//조건식n의 연산결과가 참일 때 수행될 문장들을 적는다.
} else { // 마지막은 보통 else블럭으로 끝나며, 생략가능하다.
//위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적는다.
}
if-else if문의 형태로 n개의 조건식을 만들 수 있다. 마지막에는 else 블럭으로 끝내고 조건식에 만족하지 않으면 수행될 문장들을 적어준다.
중첩 if문
if문에 또 다른 if문을 포함시킬 수 있다. 이를 중첩 if문이라고 부른다. 중첩의 횟수에는 제한이 없다.
if(조건식1) {
// 조건식1의 연산결과가 true일 때 수행될 문장들을 적는다.
if(조건식2) {
//조건식1과 조건식2가 모두 true일 떄 수행될 문장들
} else {
//조건식1이 true이고, 조건식2가 false일 때 수행되는 문장들
}
} else {
//조건식1이 false일 때 수행되는 문장들
}
출처:Java의 정석 기초편(저자: 남궁성, 출판사:도우출판)
'java > 기본문법' 카테고리의 다른 글
[조건문과 반복문]break문, continue문 (0) | 2022.01.28 |
---|---|
[조건문과 반복문]while문, do-while문 (0) | 2022.01.28 |
[조건문과 반복문] for문 (0) | 2022.01.25 |
[조건문과 반복문] 임의의 정수만들기 Math.random() (0) | 2022.01.25 |
[조건문과 반복문] switch (0) | 2022.01.25 |