• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

if else 문제..

22.12.28 21:37 작성 22.12.28 21:38 수정 조회수 212

1

 문제. 중첩 if를 이용하여 프로그램을 작성하세요

* 3개 과목의 점수를 입력 받아서 합격인지 불합격인지 출력하세요

* 3개 과목이 전부 40점 이상이어야 하고 평균이 60이상이면 "합격"

* 평균이 60이 넘지만 1개 과목이라도 40점 미만이면 "과락으로 불합격"

* 평균이 60미만이면 "불합격"

*

* --출력결과--

* 국어점수입력 : 95

* 영어점수입력 : 85

* 수학점수입력 : 73

* 결과 : 합격

 

이문제 출력결과 나타내려고

제가 나타낸 코드인데 2개가 궁금합니다.

if (a => 40) && (b => 40) && (c => 40)

  1. 조건으로 위에 문장이 사용안되는 이유가 뭔가요?

     

  2. 그리고 평균값을 구할때

if (a+b+c) / 3 >= 60 이렇게 했는데 이것도 코드가 안되는데 이유가 뭔가요?

답변 1

답변을 작성해보세요.

0

안녕하세요?
작성하신 전체 코드와 안되는 이유 (오류메시지나 교수님의 피드백 등) 가 함께 있으면 더 확인이 좋을 것 같습니다. 문제에서 원하는 것은 '중첩 if' 문인데요. 중첩이란 2중 이상 겹쳐진 것을 의미합니다. 문제의 조건에 맞춰서 작성하셨는지, 단일 if 문으로 구현하셨는지도 확인이 필요합니다.
1. 먼저 첫 번째 if 문에서 40 이상이라는 연산을 위해서는 => 이 아닌 >= 순서로 되어야 합니다. 그래서 if (a >= 40 && b >= 40 && b >= 40) 으로 하시면 되겠구요.
2. 평균값을 구하는 공식은 틀린 곳이 없어 보이는데 문법적 오류가 발생했나요? 한 가지 문제가 있다면 괄호가 없어서 if ((a + b + c) / 3 >= 60) 정도면 괜찮아 보입니다.
설명을 위해서 코드를 작성하시면서 실수로 문법을 잘못 적으신건지, 아니면 질문주신 코드 그대로 작성하셔서 빌드 에러가 발생했는지 확인이 필요합니다.

저는 간단히 이렇게 작성을 해보았습니다.

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int [] scores = new int[3];
        int total = 0;
        double average = 0;

        System.out.print("국어점수입력 : ");
        scores[0] = sc.nextInt();
        System.out.print("영어점수입력 : ");
        scores[1] = sc.nextInt();
        System.out.print("수학점수입력 : ");
        scores[2] = sc.nextInt();

        for (int i = 0; i<scores.length; i++) {
            total += scores[i];
        }
        average = total / 3.0;

        if (average >= 60) {
            if (scores[0] >= 40 && scores[1] >= 40 && scores[2] >= 40) {
                System.out.println("결과 : 합격");
            } else {
                System.out.println("결과 : 과락으로 불합격");
            }
        } else {
            System.out.println("결과 : 불합격");
        }
    }

감사합니다 ☺

궁금한 2가지사항 오류는 해결했는데

현재 제가 else if 까지 강의를 수강했는데요

나도코딩님 께서 작성해주신 코드들에서

Scanner sc = new

int total = 0 으로 왜 해야하는지

for 문은 왜쓴건지 등등.. 이해가 안갑니다ㅠ

나중에 강의 다들으면 다 이해 할수 있는걸까요?

암튼 빠르게 답변 주셔서 너무 감사합니다!

네, 나중에 강의를 모두 듣게 되면 이해가 되실 겁니다 😉
저는 질문 주신 퀴즈를 해결하기 위해, 사용자로부터 점수를 입력받기 위해 Scanner 가 필요하고 평균을 계산하기 위해 (총점 / 과목 수) 에서 총점을 total 로 먼저 저장하려고 만들어둔 것 뿐이에요. total 은 없이 질문자님께서 작성하신대로 (a + b + c) / 3 >= 60 으로 하셔도 무방합니다.
현재 학교 또는 학원 등 교육기관에서 오프라인 수업을 듣고 공부하시는 거라면, 빠르게 제 강의를 먼저 수강해두시면 학습효과가 훨씬 더 좋을것 같아요 👏
감사합니다.

감사합니다 나도코딩님

중급자 강의도 있으면 좋겠어요!

감사합니다 😲
기회가 된다면 중급자 강의도 검토해보도록 하겠습니다.
새해 복 많이 받으세요 🙆‍♂️🙇‍♂️