我制作了一个程序,要求用户输入5位数,然后程序找到这些数字的总和。 我想知道如何在计算一次后让程序一次又一次地询问一个数字。 我希望用户再次尝试n,直到他自己想要退出。
public static void main(String[] args) {
int num=1362;
int i,t=0;
int store;
for(i=0; i<=5; i++)
{
store=num%10;
num=num/10;
t=t+store;
}
System.out.println("The sum of the digits of 1362 is " +t);
}
答案 0 :(得分:1)
在用户写入不是数字的内容之前,执行将继续。
public static void main(String[] args) {
int num=1362;
int i,t=0;
int store;
Scanner in = new Scanner(System.in);
while(in.hasNextInt())
{
t = 0;
store = 0;
num = in.nextInt();
for(i=0; i<=5; i++)
{
store=num%10;
num=num/10;
t=t+store;
}
System.out.println("The sum of the digits is " +t);
}
in.close();
}
答案 1 :(得分:1)
我的解决方案: 用户输入5个数字,然后计算总和,并询问用户是否要重复它(无异常处理)。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String repeat = "";
do {
try {
int[] digits = new int[5];
System.out.println("Enter 5 digits: ");
for (int i = 0; i < digits.length; i++) {
System.out.printf("Digit %d:", i + 1);
String input = br.readLine();
digits[i] = Integer.parseInt(input);
}
int sum = 0;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < digits.length; i++) {
sum += digits[i];
sb.append(digits[i]);
}
System.out.printf("The sum of the digits of %s is %d.", sb.toString(), sum);
System.out.println("Repeat? (y/n)");
repeat = br.readLine();
} catch (NumberFormatException e) {
// TODO: handle wrong user input
} catch (IOException e) {
// TODO: handle io exception
}
} while (repeat.equals("y"));
try {
br.close();
} catch (IOException e) {
// TODO: handle IOException
}