Programming 기초/Java

[Java] 조건문

뭉제 2023. 3. 7. 19:41
목차
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+/