import java.util.Scanner;
public class test {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
float f = 0;
while (true) {
try {
System.out.println("请输入第一个数字:");
f = sc.nextFloat();
break;
} catch (Exception ex) {
System.out.print("对不起,您的输入不正确");
sc.next();//!!!就是这个
}
}
}
}
声明:我是菜鸟 求大神帮助 分不多了 不好意思
如果输入的不是float就会发生异常 catch捕获
但是下次循环式 sc.nextFloat()还是原来的错误值 导致死循环
为什么最后catch要加个sc.next();就可以避免那种情况
否则就会造成死循环 也就是好像是sc里的值得不到释放那种
因为我在catch里如果输出sc.next()的话,会输出之前的错误的值
求大神帮助
sc.next();//!!!就是这个
指针下移一位,不然while总是true啊,移到最后就返回false了。所以就跳出while了。