黑马程序员技术交流社区
标题:
怎样才能是输出结果改变呢?
[打印本页]
作者:
二月的雨
时间:
2014-12-28 13:13
标题:
怎样才能是输出结果改变呢?
最近有一个小程序
源代码如下和输出结果如下:
/**
* 编写一个程序,提示用户读取两个整数,然后显示它们的和。
* 程序应该在输入不正确时提示用户再次读取数字。
*
*
*/
源代码如下:
import java.util.*;
public class NumberFormatException
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("Enter two integer numbers: ");
boolean done = false;
int number1 = 0;
int number2 = 0;
try
{
while (!done)
{
number1 = input.nextInt();
number2 = input.nextInt();
done = true;
}
}
catch(Exception ex)
{
System.out.print("Incorrect input and re-enter two Integers: ");
input.nextLine();
}
System.out.println("number1 and number2 is "+(number1+number2));
input.close();
}
}
显示结果:
Enter two integer numbers: 2 6.3
Incorrect input and re-enter two Integers: number1 and number2 is 2
如果我想要输入的第一个整数2不参与计算
即,显示结果为:
Enter two integer numbers: 2 6.3
Incorrect input and re-enter two Integers: 2 5
number1 and number2 is 7
那么应该怎样修改代码呢?
作者:
忆墨
时间:
2014-12-28 15:29
什么意思还是不太清楚。程序运行的还是ok的啊,如果不想输出num1+num2的结果,直接把它去掉不就行了吗
作者:
outsider1020
时间:
2014-12-29 08:49
不太懂楼主的意思啊!!!!!!!!!!!!
作者:
446111220
时间:
2014-12-29 09:08
一点没看懂楼主要表达什么
作者:
二月的雨
时间:
2014-12-29 09:50
意思是这样子的:如果输入的不全部是int型的数,那么能否只显示重新输入的提示,然后再输入,......,知道输入两个int型的数才显示结果。
作者:
赖永树
时间:
2014-12-29 20:48
本帖最后由 赖永树 于 2014-12-29 20:52 编辑
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter two integer numbers: ");
boolean done = false;
int number1 = 0;
int number2 = 0;
while (!done)
{
try
{
number1 = input.nextInt();
number2 = input.nextInt();
done = true;
}
catch(Exception ex)
{
System.out.print("Incorrect input and re-enter two Integers: ");
input.nextLine();
continue;
}
}
System.out.println("number1 and number2 is "+(number1+number2));
input.close();
}
复制代码
把循环放在外面,异常出现时 continue ,算了,还是敲吧。
作者:
寻觅
时间:
2014-12-31 10:54
循环放在外面,这样在循环里面catch到了异常,就会抛出“Incorrect input and re-enter two Integers: ”,但是不会跳出循环,因为检测到异常之后代码执行不到done=true;这句,所以循环不会结束,进而不会执行下面的作和相加并输出的语句,只有在没有异常时,done=true才会执行,循环条件不符合,执行循环下面的代码。
/**
* 编写一个程序,提示用户读取两个整数,然后显示它们的和。
* 程序应该在输入不正确时提示用户再次读取数字。
*
*
*/
import java.util.Scanner;
public class NumberFormatException
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("Enter two integer numbers: ");
boolean done = false;
int number1 = 0;
int number2 = 0;
while (!done)
{
try
{
number1 = input.nextInt();
number2 = input.nextInt();
done = true;
}catch(Exception e)
{
System.out.print("Incorrect input and re-enter two Integers: ");
input.nextLine();
}
}
System.out.println(number1+"+"+number2 +" = "+(number1+number2));
input.close();
}
}
复制代码
作者:
红楼
时间:
2014-12-31 18:26
好多牛掰的大神啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2