问题遇到的现象和发生背景
当我第一个输入10.1的时候,第二个输入就会不被执行,直接将10.1输进第二个scanner了,而且第一个10.1不是局部变量吗?为什么可以转到第二个scanner上?
问题相关代码,请勿粘贴截图
import java.util.Scanner;
public class Java1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int str=0;
float str1=0.0f;
System.out.println("请输入一个整数:");
if(scanner.hasNextInt()){
str=scanner.nextInt();
System.out.println("输入的整数为:"+str);
}else {
System.out.println("不是整数");
}
System.out.println("请输入小数");
if(scanner.hasNextFloat()){
str1= scanner.nextFloat();
System.out.println("输入的小数为"+str1);
}else {
System.out.println("输入的不是小数");
}
}
}
运行结果10.1
不是整数
请输入小数
输入的小数为10.1