猜数游戏输入字母会错误
代码如下
import java.util.Random ;
import java.util.Scanner ;
public class Kaikouzhong{
public static void main(String[] args){
int n = 0 , m = 99 ;
Random r = new Random();
int z = r.nextInt(100);
int s = z + 1 ;
System.out.println( "猜数游戏\n");
System.out.println( "请输入一个1-99之间的数");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
while (i != s){
while (i>99||i<1){
System.out.println( "输入有误,请输入一个1-99之间的数");
i = sc.nextInt();
}
System.out.println("输入的数为"+i);
if (i>s){
System.out.println(n+" 到 "+i);
m = i ;
System.out.println( "请输入一个"+n+"到"+m+"之间的数");
i = sc.nextInt();
}else{
System.out.println(i+" 到 "+m);
n = i ;
System.out.println( "请输入一个"+n+"到"+m+"之间的数");
i = sc.nextInt();
}
while (i>m||i<n){
System.out.println( "输入有误,请输入一个"+n+"到"+m+"之间的数");
i = sc.nextInt();
}
}
System.out.println("中奖号码为"+s);
System.out.println("中奖了");
}
}
怎么可以限制输入字母返回重新输入呢、
[解决办法]
for example
public static void main(String[] args){ int n = 1, m = 99 ; Scanner sc = new Scanner(System.in); Random r = new Random(); int s = r.nextInt(99) + 1; System.out.println( "猜数游戏\n"); while (true) { System.out.printf( "请输入一个%d-%d之间的数\n", n, m); String str = sc.nextLine(); int i = 0; try { i = Integer.parseInt(str); if (i<n || i>m) { throw new Exception("out of range."); } } catch (Exception e) { System.out.println("输入有误,请重新输入"); continue; } if (i < s) { System.out.printf("输入的数是%d,比中奖号码小,再猜\n", i); m = i; } else if (i > s) { System.out.printf("输入的数是%d,比中奖号码大,再猜\n", i); n = i; } else { System.out.println("输入的数是%d,中奖号码是%d,中奖了\n", i, s); System.out.println("是否继续?请输入[quit]退出"); str = sc.nextLine(); if ("quit".equals(str)) { break; } n = 1; m = 99; s = r.nextInt(99) + 1; } }}
[解决办法]
public class Kaikouzhong { public static void main(String[] args) { int n = 0, m = 99; Random r = new Random(); int z = r.nextInt(100); int s = z + 1; System.out.println("猜数游戏\n"); System.out.println("请输入一个1-99之间的数"); Scanner sc = new Scanner(System.in); int i=0; try{ i = sc.nextInt(); while (i != s) { while (i > 99 || i < 1) { System.out.println("输入有误,请输入一个1-99之间的数"); i = sc.nextInt(); } System.out.println("输入的数为" + i); if (i > s) { System.out.println(n + " 到 " + i); m = i; System.out.println("请输入一个" + n + "到" + m + "之间的数"); i = sc.nextInt(); } else { System.out.println(i + " 到 " + m); n = i; System.out.println("请输入一个" + n + "到" + m + "之间的数"); i = sc.nextInt(); } while (i > m || i < n) { System.out.println("输入有误,请输入一个" + n + "到" + m + "之间的数"); i = sc.nextInt(); } } System.out.println("中奖号码为" + s); System.out.println("中奖了"); }catch(Exception e){ System.out.println("==只能输入数字!游戏结束=="); } }}