Backend/개발 공부

[JAVA|Eclipse] if, else if (조건문)

Deeb 2021. 8. 30. 10:26

제어문
: 프로그램의 흐름을 바꾸는(제어하는) 역할을 하는 코드

 

1. 조건문

: 제어문 중 하나로 조건에 따라 다른 코드가 실행되도록 하는 코드

 

1) if문

구문

if( 조건식 ) {
	수행될 코드
}

- 조건식이 true 일 때만 내부에 작성된 코드를 수행

 

조건식의 결과 값이

true : if문 내부 코드 수행

false : 내부코드는 실행되지 않는다. 

 

2) if else

구문

if(조건식) {
	true일 때 수행될 코드;
}  else {
	false일 때 수행될 코드;
}

조건식이 true일 경우 if문, false일 경우 else문 내부 코드를 수행

 

3) if  ~ else if ~ else

구문

if(조건식1) {
	조건식1 true일 때 수행
} else if(조건식2){
	조건식2 true일 때 수행
} else {
	모두 false 일 때 수행
}

조건이 여러 개가 필요한 경우

 

ex) 계절 

 

ex) 학점

 

4) 중첩 if문

구문

if (조건식1) {
  if(조건식2) {
  	if(조건식3) {
  		수행될 코드;
  	} else if(조건식4) {
  		수행될 코드;
 	 } else {
  		수행될 코드;
  	}
  } else {
  	수행될 코드;
  }
 } else if (조건식5) {
 	수행될 코드;
 } else {
	수행될 코드;
}

안으로 들어가면 들어갈수록

선행조건들이 만족이 됐는지 안됐는지 알 수 있다. 

 

심층면접 같은 느낌

1차 테스트 통과한 사람 중 

 

public void example8_answer() {
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("나이 입력 : ");
		int age = sc.nextInt();
		
		String result;
		
		//입력받자 마자 검사해야함	
		if ( age < 0 || age > 100) { //나이 입력받기
			result = "나이를 잘못 입력 하셨습니다.";
			
		} else { // 나이의 반대상황인 키를 입력받는 구문을 넣기
			System.out.print("키 입력(cm) : ");
			double height = sc.nextDouble(); 
			
			//비교는 같은 자료형끼리 해야해서 .0을 붙이거나, double로 자동형변환 돼서 int로 써도 괜찮음
			if ( height < 0  || height > 250) { // 키 입력 받기 
				result = "키를 잘못 입력 하셨습니다.";
				
			} else { //키를 정상 범위로 입력한 경우
				
				//1) 중첩 if문 이용해 푸는 법
				
				if( age < 12 ) { // 나이 적절치 않은 경우 1. 나이 
					
					if( height >= 140 ) { // 키가 적절한 경우
						result = "키는 적절하나, 나이가 적절치 않음";
			
					} else {
						result = "나이와 키 모두 적절치 않음";
					}
					
				} else { // 나이가 적절한 경우
					
					if (height >= 140) { //키 적절
						result = "탑승 가능";
					
					} else { //키가 적절하지 않은 경우
						result = "나이는 적절하나, 키가 적절하지 않음";
						
					}
					
				}
				
			}
		}
		
	System.out.println(result);
}

 

놀이기구 탑승 제한 검사 프로그램 

/*
 * 조건 
 * - 나이 : 12세 이상
 - 키 140.0cm 이상

 * 나이 0 ~ 100세 사이로 입력하지 않은 경우 : "나이를 잘못 입력 하셨습니다." 
 * 키 0 ~ 250.0cm 사이로 입력하지 않은 경우: "키를 잘못 입력 하셨습니다." 
 * -> 입력되자마자 검사를 진행해 잘못된 경우 '프로그램 종료'
 * 
 * 나이 O, 키 X : "나이는 적절하나, 키가 적절치 않음";
 * 나이 X, 키 O : "키는 적절하나, 나이가 적절치 않음";
 * 나이 X , 키 X : "나이와 키 모두 적절치 않음";
 * 나이 O, 키 O : "탑승 가능";
 */

 

 

/* 문제 읽고 푸는 법

1. 입력되자마자 검사를 진행해야 한다 => if

2. 

 * 1. if 나이 잘못된 값 조건문 // 나이가 아니라면 나이 잘못입력 출력
 * 2. else 키 입력받기 // 잘못 입력했다면 잘못입력했다는 결과 출력
 * 3. 중첩 if) 나이, 키 제대로 입력됐다면
 * 4. 
 * 
 * 나이먼저 설정
 * 2. 나이가 아닌경우에 키가 아닌경우
 * 3. 둘다 아니면 모두 적절 x
 * 
 * 
 */

 

think) 

 

 

5) switch문 

switch(식) {
	case 결과값1: 수행코드1; break;
	case 결과값2: 수행코드2; break;
	case 결과값3: 수행코드3; break;
	...
	default : case를 만족하지 않을 경우의 코드입력; 
}

switch는 조건식이 아닌 이유: 결과가 true,false가 아닌 일반적인 식이 들어간다. 

 

조건식 하나로 많은 경우의 수 처리할 때 사용하며 이때 조건식의 결과는 정수 또는 문자, 문자열 조건식의 결과 값과 일치하는 case문으로 이동 default문은 일치하는 case문이 없을 때 수행(= else )

 

주의)

범위가 들어가서는 안되고 딱 떨어지는 값으로 해야한다!!!!

 

break;

-> 현재 case의 코드를 수행 후 switch문을 멈추라는 것

 

break;를 입력하지 않을 경우, 앞의 모든 코드를 실행한 후 default값이 나와버린다. 

default는 어차피 코드가 끝나는 부분이기때문에 break를 쓰지 않아도 된다.

 

====================

 

if - 조건 1개

if - else 조건 2개

if - else if -else 조건 다수 (switch는 이것과 유사)

 

 

 

+예제가 있으면 무조건 응용을 해야한다. 

 

 

.charAt()

모든 문자열에서 사용 가능하다

입력받은 문자열이나

지정한 문자열 (변수) 에서도 가능하다. 

 

 

String.charAt() 문자열에서 문자를 뽑는 함수

sc.next(); == 문자열을 입력받는다. == String으로 인식

 

// 입력 받은 문자열에서 0번째 위치에 있는 문자를 꺼내  op 변수에 대입 
// String에서 특정 위치에 있는 문자 하나를 반환하는 기능(메소드)
// -> String.charAt(index); (index = 위치, 위치는 0,1,2 순서)
//  하나만 반환하는 기능

 

 

지역변수는 반드시 초기화 되어야한다

선언된 변수에 값을 집어넣는다.

 

 

오늘의 팁) 

 

import구문 입력하지 않아도 Scanner입력 후 ctrl + enter

 

import자동완성 기능

 

new도 가능

 

반응형