我创建了一个使用Java的程序,它通过用户输入生成emirps,但是在输入零或负整数时我需要帮助停止用户。我尝试了很多东西但是当我运行零或负数的程序时,它会变得疯狂并给我无限的数字。如果有人能帮助我,我将不胜感激。
这是我到目前为止所得到的......
import java.util.Scanner;
public class GenerateEmirps {
public static void main(String[] args) {
Scanner scanner = new Scanner (System.in);
System.out.print("Enter number of desired emirps: ");
int emrips = scanner.nextInt();
int count = 1;
for( int i = 2; ; i++){
if ((isPrime(i)) && (isPrime(reverseIt(i))) && (!isPalindrome(i))) {
System.out.print(i + " ");
if (count % 10 == 0) {
System.out.println();
}
if (count == emrips){
break;
}
count++;
}
}
}
public static boolean isPrime(int num){
for (int i = 2; i <=num / 2; i++){
if (num % i == 0) {
return false;
}
}
return true;
}
public static int reverseIt(int num){
int result = 0;
while (num != 0) {
int lastDigit = num % 10;
result = result * 10 + lastDigit;
num /= 10;
}
return result;
}
public static boolean isPalindrome(int num){
return num == reverseIt(num);
}
}
答案 0 :(得分:1)
您只需在处理输入之前测试输入。
int emrips = scanner.nextInt();
if (emrips <= 0) { System.exit(0); }