foxpacking

Programming Lessons

Java 언어 Korean

Java 총 정리[17.제어문 문제2]

문제 풀기 2

제어문을 배우고 나서 제어문과 관련된 예제를 한 문제 정도로는 충분하다고 생각을 하시나요? 여러분도 부족하다고 느끼시죠? 저도 당연히 문제가 부족하다고 많이 느끼고 있습니다. 

이번에도 이전 문제와 다른 문제를 풀어볼 수 있도록 하겠습니다. 과연 어떤 문제인지 궁금하시죠? 저도 문제를 많이 올릴 수 있도록 하겠습니다. 이 글을 끝까지 보고 문제를 풀고 하신다면 분명 실력이 향상 되실 수 있습니다.

이번 문제는 반복문은 포함이 되지 않고 1회만 동작하는 문제입니다. 하지만 조건문을 많이 쓰고 사용하며 논리 연산자도 사용이 될 수 있기 때문에 좋은 문제라고 생각합니다. 또한 배운 것을 토대로 하시면 좀 더 간결한 소스를 구현을 하실 수 있습니다. 이 글을 보고 한 번 도전을 해보세요.

문제

현재까지 배운 내용을 기준으로 변수, 연산자, 출력문, 입력문, 조건문을 모두 활용을 해볼 수 있는 기초적인 문제입니다. 

※ 정답은 하나가 아닙니다. 문제의 대한 결과가 동작을 한다면 정답입니다. 밑에 나오는 정답은 참고를 하시면 됩니다.

※ 결과에 대한 테스트를 예시로만 하는 것보다 여러가지를 하셔서 생각하는 결과로 나오는 확인을 하시는 것이 더욱 더 좋습니다.

제어문 문제2 사진

실행 결과

제어문 문제2 결과 사진

위 문제를 Class를 생성하고 Main문에 소스를 구현해 주세요.

실행 관련 걸음 : 다섯 걸음, 여섯걸음

참고해주세요.


import java.util.Scanner;

public class Q3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//입력
		Scanner sc = new Scanner(System.in);
		System.out.print("국어 : ");
		int kor = sc.nextInt();
		System.out.print("영어 : ");
		int eng = sc.nextInt();
		System.out.print("수학 : ");
		int math = sc.nextInt();

		//올바른 입력
		if(kor  >=0 && kor <=100 && eng  >=0 && eng <=100 && 
		math  >=0 && math <=100) {
			double avg = (double)(kor+eng+math) / 3.0;
			String g = "";
			//평균을 기준으로 학점을 문자열에 담기
			if(avg  >=95) {
				g = "A+";
			}
			else if(avg  >= 90) {
				g = "A";
			}
			else if(avg  >=85) {
				g = "B+";
			}
			else if(avg  >=80) {
				g = "B";
			}
			else if(avg >=75) {
				g = "C+";
			}
			else if(avg >=70) {
				g = "C";
			}
			else if(avg >=60) {
				g = "D";
			}
			else {
				g = "F";
			}
			//평균 점수 소수점 첫자리 까지 출력과 학점 출력
		System.out.printf("평균 %.1f점이고 학점은 %s 입니다.", avg,g);
		}
		//잘못된 입력
		else { 
			String wrongResult = "";
			if(kor < 0 || kor  > 100) {
				wrongResult += "국어 ";
			}
			if(eng < 0 || eng  > 100) {
				wrongResult += "영어 ";
			}
			if(math < 0 || math  > 100) {
				wrongResult += "수학 ";
			}
		System.out.println(wrongResult+"잘못 입력 됐습니다.");//출력
		}
	}
}

        

생각을 해보기

처음 이 문제를 해결 할 때 올바른 입력과 잘못된 입력으로 처음 분기를 해주고 그 이후에 올바른 입력에 대한 실행문을 구현을 하고 잘못된 입력의 안에서 잘못된 입력이 동작하도록 구현을 한다면 좀 더 쉽게 프로그래밍을 하실 수 있습니다.

&&(and), ||(or) 사용에 대해서 한번 확인을 해보시면 도움이 됩니다. 

참고

//단일 if문으로 구현 만약에 if-else-if문으로 구현을 하면 어떻게 달라질까요?

(생각을 해보시면 도움이 됩니다.) 

// 국어 -> 수학 까지 문자열 더하기 연산으로 문자열과 문자열을 더합니다.

//문자열 + 문자열을 더하면 이어 쓰기가 됩니다. 예) “a” + “b” = “ab

//조건은 과목이 0보다 작고 100보다 큰 경우에 과목만 문자열 더하기를 합니다.

Dolphin

About Author

Leave a comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You may also like

Korean Programming 기초

IT 개발자 VS 프로축구선수 비교?

IT 개발자와 프로축구선수의 같은 점과 다른 점? 프로그래밍 공부를 하시면서 개발자로 취업을 하려고 하는데 과연 취업을 할 수 있을까? IT
Korean 클라우드

AWS 로그인 불가능, AWS고객 센터 이메일 문의 결과는?

AWS 고객센터 이메일 문의 솔직후기 AWS를 사용하기 위해 로그인을 하는 경우 이메일로 코드 번호를 보내지만 이메일로 받을 수 없는 상황이거나