Это мой код. Программа для проверки простых чисел между пользовательскими вводами 'start' и 'stop'.
import java.util.*;
public class test
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
while(true)
{
System.out.println("Enter start: ");
String start = sc.nextLine();
if(start.equalsIgnoreCase("stop"))
{
break;
}
System.out.println("Enter stop: ");
String stop = sc.nextLine();
if(stop.equalsIgnoreCase("stop"))
{
break;
}
try
{
int s1 = Integer.parseInt(start);
try
{
int s2 = Integer.parseInt(stop);
for(int i = s1; i<=s2;i++)
{
if(p1.isPrime(i))
{
System.out.print(i+" ");
}
}
System.out.println("");
}
catch(java.lang.NumberFormatException er)
{
System.out.println("Invalid Input");
}
}
catch(java.lang.NumberFormatException er1)
{
System.out.println("Invalid Input");
}
}
}
}
При вводе начального ввода, если я ввожу какую-либо строку, я хочу, чтобы код мгновенно обнаружил NumberFormatException и запросил тот же вход снова.
Что происходит вместо этого, так это то, что он принимает оба входа, как строковые, так и целые, и только затем оценивает, является ли это строкой.
Я не использую sc.nextLine()
, потому что хочу останови функционал. Я хочу, чтобы программа остановила выполнение, если я в любом месте введу «стоп».