我希望我的代码循环,但将变量重新初始化为0。每次输入数字时,它将其添加到先前的结果中,但我希望将其重置。我在下面附加了两张图片。一个是实际输出,另一个是预期输出。
import java.util.Scanner;
public class AddOrMultiplyNNumbers {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String am;
int sum = 0;
int total = 1;
int n = 0;
while (true) {
System.out.print("enter an integer number: ");
n = input.nextInt();
if(n == 0) {
break;
}
System.out.print("enter either 'a' or 'm': ");
input.nextLine();
am = input.nextLine();
if (am.equals("a")) {
for (int y = 1; y <= n; y++) {
sum = sum + y;
}
System.out.println(sum);
} else if (am.equals("m")) {
for (int x = 1; x <= n; x++) {
total = total * x;
}
System.out.println(total);
}
}
}
}
实际输出
所需的输出
答案 0 :(得分:2)
您可以使用continue
if(n == 0) {
sum = 0;
total = 1;
continue;
}
答案 1 :(得分:0)
我不知道我是否完全理解您的问题,但只求sum = 0;总计= 1;在您打印出最终结果之后。您还应该考虑在nextInt上执行try / catch语句,以确保其健壮性,以便字符和字符串不会破坏您的程序...
try {
n = input.nextInt();
}
catch (Exception e) {
System.out.println("Not a Number");
}
答案 2 :(得分:0)
您可以在while循环中初始化变量
public class AddOrMultiplyNNumbers {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String am;
while (true) {
int sum = 0;
int total = 1;
int n = 0;
System.out.print("enter an integer number: ");
n = input.nextInt();
if(n == 0) {
break;
}
System.out.print("enter either 'a' or 'm': ");
input.nextLine();
am = input.nextLine();
if (am.equals("a")) {
for (int y = 1; y <= n; y++) {
sum = sum + y;
}
System.out.println(sum);
} else if (am.equals("m")) {
for (int x = 1; x <= n; x++) {
total = total * x;
}
System.out.println(total);
}
}
}
}
答案 3 :(得分:0)
要将变量清零,只需在适当的位置分配0
。
sum = 0;
在第一个for
循环之前紧接为您所需的输出插入此语句的适当位置。同样,在第二个total
之前重置for
。
但是,一种更好的编写方式是像在x
和y
中所做的那样,在需要的位置声明变量。这适用于am
,sum
,total
和n
Scanner input = new Scanner(System.in);
while (true) {
System.out.print("enter an integer number: ");
int n = input.nextInt();
if (n == 0) {
break;
}
System.out.print("enter either 'a' or 'm': ");
input.nextLine();
String am = input.nextLine();
if (am.equals("a")) {
int sum = 0;
for (int y = 1; y <= n; y++) {
sum = sum + y;
}
System.out.println(sum);
} else if (am.equals("m")) {
int total = 1;
for (int x = 1; x <= n; x++) {
total = total * x;
}
System.out.println(total);
}
}