对于学校作业,我必须制作一个程序,从终端读取两个数字,然后处理这些数字。程序必须在输入后自动处理这两个值。我到目前为止的代码是在下面,但你必须在程序乘以数字之前按Enter键,用户不必按三次输入,而只需按两次。
public static void man(String[] args) throws NumberFormatException, IOException{
BufferedReader reader = new BufferedReader( new InputStreamReader(System.in));
int count = 0;
int width = 0;
int height= 0;
String number;
while( (number = reader.readLine())!=null && count < 2 ) {
while( count < 2 ){
if( count == 0) {
width = Integer.parseInt( number);
count++;
break;
}
else if (count == 1) {
height = Integer.parseInt( number);
count++;
break;
}
}
}
System.out.println( width * height );
}
这是用户此刻必须使用该程序的方式
但目前用户应该如何使用该程序:
当然我的程序必须为作业做一些不同的事情,但我已经改变了一点,以便在这里更容易解释。
提前感谢您的帮助!
答案 0 :(得分:1)
由于你正在完成学校作业,我会提出另一个建议:消除条件中混乱的分配。我知道你已经在某个地方看过这个,并且会继续在很多地方看到它,甚至会遇到热情地提倡它的人,但我认为这往往会让事情变得混乱。怎么样:
for (int i=0; i<2; i++)
{
String number = reader.readLine();
if (i == 0) { height = Integer.parseInt(number); }
else { width = Integer.parseInt(number); }
}
答案 1 :(得分:0)
是否计算&lt; 2在readLine()之前检查,否则它会在检查计数之前尝试读取一个数字。
即那些支票从左到右评估
答案 2 :(得分:0)
尝试此修改:
public static void main(String[] args) throws NumberFormatException,
IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(
System.in));
int count = 0;
int width = 0;
int height = 0;
String number;
while (count < 2) { // Just 2 inputs
number = reader.readLine();
if (count == 0) {
width = Integer.parseInt(number);
count++;
} else if (count == 1) {
height = Integer.parseInt(number);
count++;
}
else // If count >= 2, exits while loop
break;
}
System.out.println(width * height);
}
答案 3 :(得分:0)
使用java.util.Scanner类进行用户输入
Scanner scanner = new Scanner(System.in);
int width = scanner.nextInt();
int height = scanner.nextInt();
scanner.close();
System.out.println( width * height );