Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Everything has an expiration date

050 - Java 반복문 while을 이용하여 입력 받은 정수 값이 소수인지 아닌지 판별하는 프로그램 다시 정리 본문

[Java]/review

050 - Java 반복문 while을 이용하여 입력 받은 정수 값이 소수인지 아닌지 판별하는 프로그램 다시 정리

Jelly-fish 2023. 8. 31. 15:05
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;


public class Mytest4
{
	public static void main(String[] args) throws IOException
	{

		

		// 1. 변수 선언
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int nInputNum;							//-- 입력받은 수 
		int nMinusInputNum;						//-- 입력받은 수보다 1 작은 수
		int nRemainNum;							//-- 나머지값 저장
		int i = 2;								//-- 루프 변수
		String strResult="소수";				//-- 결과 문자열

		// 2. 사용자로부터 입력 받고, nMinusInputNum에 -1 값 저장.
		System.out.print("임의의 정수 입력 : ");
		nInputNum = Integer.parseInt(br.readLine());

		nMinusInputNum = nInputNum - 1;

		// 3. 연산 수행
		//	while (int i = 2 ~ 입력 받은 수)
		//	{
		//		나머지 값 = 입력받은 수 % 입력받은 수보다 1 작은 수;
		//		
		//		if (나머지 값 == 0)
		//		{
		//			나누어 떨어지는 수 있음! → 소수 아님
		//		}

		//		else if (나머지 값 != 0)
		//		{
		//			[ 입력값이 1이 아니니? ] 한번 더 물어보고
		//						▶ true  : 소수
		//						▶ false : 소수 아님 (1이다!)
		//		}
		//
		//	}

		
		// 소수인지 아닌지의 문자열을 저장하는
		// 『strResult』 변수 초기 값을 "소수"로 저장하지 않으면
		// 사용자가 1 혹은 2를 입력했을 때
		// [i = 2] < 1(nInputNum) false
		// [i = 2] < 2(nInputNum) false 이므로 실행이 안 된 것!!!!!!

		while (i < nInputNum)	// 루프변수 i = 2 ~ 입력받은 수;
		{
			
			nRemainNum = nInputNum % i;  // 나머지 값 = 입력 값 % 나머지
			
			System.out.println("[i] : " + i);
			System.out.println("[nRemainNum] : " + nRemainNum);


			if (nRemainNum == 0) // 나누어 떨어진다.
			{	

				System.out.printf("『if문 들어왔습니다.』      ▶ i값 : %d로 나누어 떨어집니다.\n", i);
				System.out.println("● 나머지 값 : " + nRemainNum);
				System.out.println("소수 아님");
				return;
				
			}

			else if (nRemainNum != 0) // 나누어 떨어지지 않는다.
			{	
				System.out.printf("『else if문 들어왔습니다.』  ▶ i값 : %d로 나누어 떨어지지 않습니다.\n", i);
				System.out.println("● 나머지 값 : " + nRemainNum);
										
				if (nInputNum != 1)
				{
					System.out.println("입력한 정수가 1이 아니면 들어오는 if문");
					strResult = "소수";
					
				}
			

			}

			i++;

		}

		System.out.printf("%d → %s\n", nInputNum, strResult);


		
	}
}