조건문은 조건의 참, 거짓에 따라 서로 다른 작업을 수행할 수 있다. JAVA의 조건문은 C/C++과 동일하다.
1. if문
if(조건식){
실행할 문장;
}
이 때 조건식이 참일 경우 if문 내부의 문장을 실행하고, 거짓일 경우 if문을 빠져나간다.
2. if else문
if(조건식){
실행할 문장1
}else{
실행할 문장2
}
if else문의 경우 조건식이 참이면 문장 1이 실행되고, 거짓이면 문장 2가 실행된다.
다음 예시는 입력받는 값에 따라 참/거짓을 판단하고, 결과값에 따라 조건문을 실행하는 코드이다.
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
boolean check=sc.nextBoolean();
if(check) {
System.out.println("참입니다.");
}else {
System.out.println("거짓입니다");
}
}
scanner이 받는 문자는 Boolean이므로, 입력값은 true 혹은 false만 받는다.
true를 받은 값은, 첫 실행문인 "참입니다."를 출력하는 코드를 실행하고, false를 받은 값을 두번째 실행문인 "거짓입니다"를 출력하는 코드를 실행한다.
3. 다중 if else문
if else 문을 여러 개 겹쳐서 사용하면 다양한 조건을 거는 것이 가능해진다. 예시를 보자.
public static void main(String[] args) {
System.out.println("성적을 입력하세요.");
Scanner sc=new Scanner(System.in);
int point=sc.nextInt();//정수 입력받기
if(point>=90) {
System.out.println("A학점입니다.");
}else if(point>=80){
System.out.println("B학점입니다.");
}else if(point>=70){
System.out.println("C학점입니다.");
}else if(point>=60){
System.out.println("D학점입니다.");
}else{
System.out.println("F학점입니다.");
}
}
(프로그래밍은 절차에 따라, 아래에서 위로 진행된다.)
첫 if 문에서 조건이 참이면 첫번째 결과가 실행되고, 거짓이면 두번째 조건을 확인한다. 두 번째 조건이 참이면 두번째 결과가 실행되고, 거짓이면 세번째 조건을 확인한다. 이렇게 계속 내려오다가 모든 조건이 일치하지 않을경우 최종 else 문의 결과를 출력하게 된다.
하지만 만일 100점을 넘는다던가, 음수를 넣는다던가, 그런 상황이 있을수도 있을 것이다.
이를 방지하기 위해, 논리연산자를 넣어 조건을 강화한다. 조건식은 논리연산자를 넣는 것도 가능하다.
public static void main(String[] args) {
System.out.println("성적을 입력하세요.");
Scanner sc=new Scanner(System.in);
int point=sc.nextInt();//정수 입력받기
if(point<=100 && point>=90) {
System.out.println("A학점입니다.");
}else if(point<90 && point>=80){
System.out.println("B학점입니다.");
}else if(point<80 && point>=70){
System.out.println("C학점입니다.");
}else if(point<70 && point>=60){
System.out.println("D학점입니다.");
}else if(point<60 && point>=0){
System.out.println("F학점입니다.");
}else{
System.out.println("잘못 입력하셨습니다.");
}
}
if문 내에 또 다른 if문을 여는 것도 가능하다
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("점수를 입력하세요(0~100) : ");
int score = sc.nextInt();
System.out.print("학년을 입력하세요(1~4) : ");
int year = sc.nextInt();
if(score>=60 && score<=100) { //60점 이상
if(year!=4)
System.out.println("합격!");
else if(score>=70)
System.out.println("합격!");
else
System.out.println("불합격!");
}else if(score>=0 && score<60)
System.out.println("불합격!");
else
System.out.println("입력을 다시 해주세요.");
sc.close();
}
score가 60점을 넘어 참이 되면, 새로운 if문을 만나서 학년 조건문을 확인하게 되고 다시 조건을 확인하게 되고, score가 60점을 넘지 못하면 거짓이 되어 바로 아래의 else문으로 내려가게 된다 (들여쓰기 참조)
'JAVA' 카테고리의 다른 글
static, heap, stack? (0) | 2020.03.20 |
---|---|
4. 메서드 (0) | 2020.03.20 |
2. JAVA의 연산 (0) | 2020.03.20 |
1. JAVA의 자료형 (0) | 2020.03.17 |
IntelliJ 키맵을 이용한 단축키 (0) | 2020.03.17 |