[Java] 조건문
목차
1. if문
2. boolean 리턴 메소드
if 문
if 문은 조건에 따라 작업을 실행하거나 실행하지 않게 만들어 준다.
[구성 요소]
· if
· 조건식
· 코드블록(실행할 코드)
· else if
· else
=> if와 조건식만 필수 구성 요소이고, 나머지는 아니다.
=> 조건식에는 boolean 타입만 들어갈 수 있다.
=> 조건문은 중첩할 수 있다.
public class IfApp {
public static void main(String[] args) {
System.out.println("a");
if(false) {
System.out.println(1);
} else {
if(true) {
System.out.println(2);
} else {
System.out.println(3);
}
}
System.out.println("b");
}
실행결과
if 문이 중첩되면 이해하기가 쉽지 않고 서로 통합성이 떨어지는 문제가 생길 수 있다.
이런 문제을 보완한 else-if 문이 있다.
if(조건식) {
실행할 코드;
...
} else if(조건식) {
실행할 코드;
...
...
} else { //위의 모든 조건이 거짓인 경우
실행할 코드;
...
}
· if의 조건식
- true -> if의 코드가 실행
- false -> else if의 조건식 확인
· else if의 조건식
- true -> else if의 코드가 실행
- false -> else의 코드가 실행
=> else if는 이전 조건문이 거짓일 때 수행된다.
=> else if는 개수 제한 없이 사용할 수 있다.
public class IfApp {
public static void main(String[] args) {
System.out.println("a");
if(false) {
System.out.println(1);
} else if(true){
System.out.println(2);
} else {
System.out.println(3);
}
System.out.println("b");
}
}
실행결과
위와 같이 조건식에는 boolean 타입만 들어갈 수 있다.
boolean 타입을 만들기 위해 키워드로 직접 입력하거나, 비교 연산자, 메소드를 이용할 수 있다.
boolean을 리턴하는 메소드
boolean 값을 리턴하는 메소드들이 있는데, String 클래스의 contains 메소드도 그중 하나이다.
· String 클래스의 equals 메소드: boolean equals(Object anObject)
- 두 개의 문자열이 동일하면 true 리턴, 아니면 false 리턴
equals 메소드를 이용해서 간단한 인증 기능을 구현해 본다.
아규먼트로 아이디를 입력받아 마스터 아이디와 비교하고, 그 결과에 따라 콘솔에 다른 문자열을 출력하는 프로그램이다.
public class AuthApp {
public static void main(String[] args) {
String id="tom";
String inputId=args[0];
String pass="1111";
String inputPass=args[1];
System.out.println("Hi.");
//if(inputId==id)
if(inputId.equals(id)) {
System.out.println("Master!");
} else{
System.out.println("Who are you?");
}
}
실행결과(id=tom)
실행결과(id=go)
· ==와 같은 비교 연산자는 기본 데이터 타입과는 달리 문자열 같은 객체에는 의도치 않은 결과를 가져올 수 있다.
-> String 객체에서는 equals 메소드를 제공
이렇게 조건식을 비교 연산자나 메소드를 통해 구성하면, 프로그램이 돌아가는 동안 정해진 조건에서 특정 작업을 실행할 수 있다.
아이디 + 비밀번호까지 인증할 수 있는 프로그램으로 확장해 본다.
public class AuthApp {
public static void main(String[] args) {
String id="tom";
String inputId=args[0];
String pass="1111";
String inputPass=args[1];
System.out.println("Hi.");
if(inputId.equals(id)) {
if(inputPass.equals(pass)) {
System.out.println("Master!");
} else {
System.out.println("Wrong password!");
}
}
}
** 한 번에 주석 처리: Ctrl+/