자세히보기

IT/Programming

[Java] 짝수, 홀수, 제로 숫자 세기 프로그램

COMDORI 2020. 3. 4. 05:02
728x90
반응형

2020/03/04 - [IT/Practice] - [Java] 간단한 출력문

2020/03/04 - [IT/Practice] - [Java] 계산기

2020/03/04 - [IT/Practice] - [Java] 3 거스름돈 분리 계산

2020/03/04 - [IT/Practice] - [Java] 4 성적 출력 하기

2020/03/04 - [IT/Practice] - [Java] 짝수, 홀수, 제로 숫자 세기 프로그램

 

 

 

 

 

이번문제는 조금 난이도가 있는 문제 입니다.

▶ 조건

 Input으로 양의 정수만을 입력받기.

 양의 정수 입력 아닐 시 다시 입력 받기.

 결과로 zero일 때, 짝수일 때, 홀수 일 때 각각 카운트 하기.

 다른 수로도 입력 받기.

 Y를 입력 시 반복 하기.

 힌트는 아래와 같다.

 String input =“Y”;  구문 사용하기.

 While 또는 do while 반복문 사용하기.

 

★ 소스코드를 복사 하려면 소스코드 오른쪽 상단 "Copy"버튼을 클릭하세요.

소스코드

 

import java.util.Scanner;
public class Lab2_2 {

	 	public static void main(String[] args) {
		 		Scanner scan = new Scanner(System.in);
		 		
		 		System.out.println("======================");
				System.out.println("학번: 20150000000");
				System.out.println("이름: 컴돌이");
				System.out.println("======================\n");
				System.out.println("짝수, 홀수, 제로 개수 세기 프로그램 입니다.\n");
				
		
			while(true){ 				//전체 While 
				String check = "Y";  //문제 조건.
				int sc_num=0, re_num=0; 			//입력받는 
				int  evenCount=0, oddCount=0,  zeroCount=0;  //차례대로 짝수, 홀수, 제로 변수 선언.
				
				System.out.println("양의 정수를 입력해주세요.");  //입력받은 정수 출력문
				sc_num=scan.nextInt();
				while(sc_num!=0){  //2번째 중첩 while
					
					re_num=sc_num%10; //입력받은 정수를 10으로 나누어 나머지값을 re_num에 대입 
					sc_num=sc_num/10; // 입력받은 정수를 10으로 나누어 몫값을 저장.
					
					if(re_num%2==0 && re_num!=0){ 						//짝수 구하는 공식.
						evenCount++;				//카운터 1씩 증가.
						}
					else if(re_num%2==1) { 								 //홀수
						oddCount++;			//카운터 1씩 증가.
						}
												//while end.
					if(re_num==0){				 //제로 구하는 공식.
						zeroCount++;						//카운터 1씩 증가.
						}
				}
					System.out.println("zero 개수:  "+zeroCount);			//
					System.out.println("짝수 개수:  "+evenCount);			//
					System.out.println("홀수 개수:  "+oddCount);			//
			/////////////////////////////////////////////////////////////////////
					System.out.println("다른 수로 하시겠습니까? (Y/N)");
					check=scan.next();
						if((check.equalsIgnoreCase("Y"))){ 					//Y 값을 입력받으면 처음으로 돌아가 다시 반복.
						continue;
						}
						else if((check.equalsIgnoreCase("n"))){ 				//N값을 입력받으면 그상태에서 종료.
								System.exit(0);
					}
						else {
							System.out.println("잘못입력습니다. 다시 입력하세요.");
							continue;
						} 
				} //전체 while End. 
			}
	 	}

 

Tip: 입력받은 정수는 각각 1개의 숫자로 인식되어야 합니다. '1' '3' '5' '8' '10' '0' 

◈ 소스코드를 보시고 고칠 부분이나 더 좋은 아이디어가 있으면 코멘트 달아주세요! 

이상 문제 5번 입니다.

 

#자바 문제

 

728x90
반응형

'IT > Programming' 카테고리의 다른 글

[Java] 학생 정보 입력 시스템 출력  (0) 2020.03.04
[Java] 반지름 입력후 원의 넓이 구하기  (0) 2020.03.04
[Java] 성적 출력 하기  (0) 2020.03.04
[Java] 거스름돈 분리 계산  (0) 2020.03.04
[Java] 자바계산기  (2) 2020.03.04