package Lessons; import java.util.Scanner; public class Math { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print("please enter the first number of your question! "); int a1 = s.nextInt(); System.out.print("So you chose " + a1); System.out.println(" Choose ur second number"); int a2 = s.nextInt(); System.out.print("You chose " + a2 + " for your second number"); System.out.print(" Now enter ur operator "); String b1 = s.nextLine(); if (b1.equalsIgnoreCase("-")) { System.out.println("You chose " + b1 + "as ur operator"); } } }
我不明白为什么第15行不做任何输入,将不胜感激:3
输出量
请输入您的问题的第一个数字!2552所以您选择了2552选择您的第二个数字41您选择了第二个数字41现在输入ur运算符
由于某种原因,输出在最后一行结束并停止,并且不接收任何信息!
您需要在调用in.nextLine()行的后面立即调用in.nextInt(),原因是仅要求下一个整数不会占用输入中的整个行,因此您需要通过调用来跳至输入中的下一个新行字符in.nextLine()。
in.nextLine()
in.nextInt()
int a2 = s.nextInt(); s.nextLine();
每次您需要在调用不占用整行的方法后(例如在调用nextBoolean()等时)获得新行时,都必须执行此操作。
nextBoolean()