Notice
Recent Posts
Recent Comments
Link
Everything has an expiration date
050 - Java 반복문 while을 이용하여 입력 받은 정수 값이 소수인지 아닌지 판별하는 프로그램 다시 정리 본문
[Java]/review
050 - Java 반복문 while을 이용하여 입력 받은 정수 값이 소수인지 아닌지 판별하는 프로그램 다시 정리
Jelly-fish 2023. 8. 31. 15:05import 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);
}
}