Мой код не будет обрабатывать никакие цифры или буквы, кроме Q и q. Вы должны ввести целое число от 1 до 20 или Q или q, чтобы выйти, но оно ничего не делает, когда вводится число от 1 до 20, и не будет отображать недопустимое входное сообщение, когда это число помимо Q или q. Пожалуйста, помогите быстро.
String x;
long y=1;
int newint=0;
int stop=0;
Scanner newscan=new Scanner (System.in);
System.out.println("Enter an integer between 1 and 20 or Q or q to
quit:") ;
x=newscan.nextLine();
while (stop==0)
if (x.compareTo("Q")==0||x.compareTo("q")==0)
return;
if (x.compareTo("0")>0 && x.compareTo(";")<0)
{newint=Integer.parseInt(x);
if(newint>=1 && newint<=20)
{y=1;
while(newint>1)
{y=newint*y;
newint=newint-1;}
System.out.println("The Factorial is "+y);}
System.out.println("Enter an integer between 1 and 20 or Q or q to
quit:") ;
x=newscan.nextLine(); }
else
{ System.out.println("Invalid input");
System.out.println("Enter an integer between 1 and 20 or Q or q to
quit:") ;
x=newscan.nextLine(); }