Java

2024.04.11 조건문 if(만약 … 이라면)

정훈5 2024. 4. 11. 11:57

1. 조건문이란?

조건문은 프로그래밍에서 특정 조건을 평가하고, 그 결과에 따라 다른 실행 흐름을 따르도록 하는 구문입니다. 즉, 조건문을 사용하면 주어진 조건이 참(true)일 때와 거짓(false)일 때 수행작업을 다르게 지정할 수 있습니다.

 

if문 문법

if(조건식){
  수행문;      // 조건식이 '참'인 경우에(조건에 맞는 경우) 수행문이 수행됨 
 }  
// 조건식이 '참'이 아니면(조건에 맞지 않는 경우) 수행문이 수행되지 않음

 

예시

"재산이 9천만원 이상이면 11만원을 세금으로 낸다. 그렇지 않으면 세금을 내지 않는다”

만약에 (재산이 9천 이상이면) { 
	세금을 11만원 낸다 
} 그렇지 않으면 { 
	세금을 내지 않는다
}

 

package basic.ch04;

public class IfTest {
	
	// 변수명을 작성할 때 -- 약속(권장사항) --> 코딩 컨벤션
	// int myScore; <-- 카멜(camel : 낙타) 표기법
	// 첫 시작에 단어를 대문자로 작성하고 연결에 단어도 대문자 표기 한다면
	// ---> 파스칼 케이스

	// 코드의 시작점 (메인 함수)
	public static void main(String[] args) {
		
		// 조건문 (제어문) if
		// 주어진 조건에 따라서 실행이 이루어 지도록 흐름을 만든다.
		// if .... -> 만약 ... 이라면 
		
		boolean flag = true;
		
		if (flag) {
			// 수행 구문
			
			System.out.println("너 출력됨 ^^ : " + flag);
			flag = false;
			
		} // end of if - 블록의 범위를 기억 하자
        // if문 단독은 수행 될 수도 있고 안될 수도 있다.
		
		System.out.println("코드가 여기까지 내려 옵니다. : " + flag);
		
	} // end of main

} // end of class

 

package basic.ch04;

public class IfElseTest {

	// 코드의 시작점
	public static void main(String[] args) {
		
		int age = 20;
		
		if (age >= 20) {
			System.out.println("고등학교를 졸업 했습니다. ");
		} else {
			System.out.println("학교를 다니고 있습니다. ");
		}
		// if-else --> 둘 중 하나는 반드시 수행 된다.
	
	} // end of main

} // end of class

 

조건이 여러 개 일 때의 if else if else 구문

package basic.ch04;

public class IfElseIfElse {
	// 코드의 시작점
	public static void main(String[] args) {
		
		int age = 17;
		
		// if else if else 사용 시 조건식에 범위 점차 크게 설정해야 한다.
		if(age <= 7) {
			System.out.println("학교에 아직 다니지 않습니다.");
		} else if (age <= 13) {
			System.out.println("초등학교에 다니고 있습니다.");
		} else if(age <= 16) {
			System.out.println("중학교에 다니고 있습니다.");
		} else {
			System.out.println("고등학교 이상 다니거나 졸업을 했네요.");
		} // end of if

	} // end of main

} // end of class

 

연습문제 풀어 보기

연습 문제 - 1  

// 정수값 입력 받기 
		
		System.out.println("성적을 입력하세요 : ");
		Scanner sc = new Scanner(System.in);
		int point = sc.nextInt(); // 정수 입력받기 
		System.out.println("로깅 - 받은 값 확인: " + point);
		
		// 조건문을 완성 하세요 
		// 90점 이상 -> A 학점 입니다. 
		// 80점 이상 -> B 학점 입니다. 
		// 70점 이상 -> C 학점 입니다.
		// 60점 이상 -> D 학점 입니다.
		// 59점 이하 -> F 학점 입니다.  
		
		sc.close();// 열여 있던 자원 닫기

 

결과

 

연습 문제 - 2

문제: 성적 계산기 프로그램 작성

당신은 학교의 IT 부서에서 근무하고 있으며, 성적을 입력받아 학점을 알려주는 자바 프로그램을 개발하는 임무를 맡았습니다. 프로그램은 사용자로부터 0부터 100까지의 성적을 입력받아야 하며, 다음과 같은 기준으로 학점을 계산하여 결과를 출력해야 합니다.

  • 90점 이상 100점 이하: 'A' 학점
  • 80점 이상 90점 미만: 'B' 학점
  • 70점 이상 80점 미만: 'C' 학점
  • 60점 이상 70점 미만: 'D' 학점
  • 60점 미만: 'F' 학점 (불합격)
  • 입력받은 점수가 0 미만이거나 100을 초과하는 경우, "잘못된 입력입니다. 성적은 0에서 100 사이로 입력해주세요."라고 안내하고 프로그램을 종료합니다.
  • 각 학점별로 다음과 같은 추가적인 메시지를 사용자에게 제공해야 합니다.
  • 'A' 학점: "우수한 성적이네요! 계속 좋은 성적 유지하길 바랍니다."
  • 'B' 학점: "좋은 성적입니다. 조금만 더 노력하면 A도 가능해요!"
  • 'C' 학점: "괜찮은 성적이지만, 더 높은 등급을 위해 노력해봅시다."
  • 'D' 학점: "학습에 더 집중할 필요가 있어요. 도움이 필요하면 말해주세요."
  • 'F' 학점: "불합격입니다. 부족한 부분을 파악하고, 추가 학습이 필요해요."

요구사항:

  1. 사용자로부터 성적을 입력받기 위해 Scanner 클래스를 사용하세요.
  2. 입력 받은 성적을 기반으로 학점을 계산하고, 해당하는 메시지를 출력하세요.
  3. 모든 입력과 계산, 출력은 main 메소드 내에서 이루어져야 합니다.
  4. 입력 받은 성적이 범위를 벗어날 경우, 적절한 안내 메시지를 출력하고 프로그램을 종료하세요.

기본 코드

System.out.println("성적을 입력하세요 (0-100): ");
        Scanner scanner = new Scanner(System.in);
        int score = scanner.nextInt();
        
        
        char grade = 'X'; // 초기값을 'X'로 설정해 잘못된 입력을 쉽게 확인
        String message = ""; // 추가적인 피드백 메시지
        
        // .. 코드를 작성해주세요 
        // 힌트 - 비교 연산자와 논리연사자를 활용 
        // ...
        
        scanner.close(); // 자원 닫기

 

(정답)

package basic.exercise;

import java.util.Scanner;

public class GradeCalculator {

	// 코드의 시작
	public static void main(String[] args) {

		System.out.println("성적을 입력하세요 (0-100): ");
		Scanner scanner = new Scanner(System.in);
		int score = scanner.nextInt();

		char grade = 'X'; // 초기값을 'X'로 설정해 잘못된 입력을 쉽게 확인
		String message = "잘못된 입력입니다. 성적은 0에서 100 사이로 입력해주세요."; // 추가적인 피드백 메시지

		if (score > 100 || score < 0) {

		} else {

			if (score >= 90) {
				grade = 'A';
				message = "우수한 성적이네요! 계속 좋은 성적 유지하길 바랍니다";

			} else if (score >= 80) {
				grade = 'B';
				message = "좋은 성적입니다. 조금만 더 노력하면 A도 가능해요!";

			} else if (score >= 70) {
				grade = 'C';
				message = "괜찮은 성적이지만, 더 높은 등급을 위해 노력해봅시다.";

			} else if (score >= 60) {
				grade = 'D';
				message = "학습에 더 집중할 필요가 있어요. 도움이 필요하면 말해주세요.";

			} else {
				grade = 'F';
				message = "불합격입니다. 부족한 부분을 파악하고, 추가 학습이 필요해요.";
			}
		}
		
		System.out.println(grade + "학점: " + message);
		
		scanner.close(); // 자원 닫기
		
		// .. 코드를 작성해주세요
		// 힌트 - 비교 연산자와 논리연사자를 활용
		// ...
	
	} // end of main

} // end of class