gpt4 book ai didi

java - 用户输入数字的乘积,当用户输入0时程序停止

转载 作者:行者123 更新时间:2023-11-29 04:11:58 25 4
gpt4 key购买 nike

我想让一个程序从用户那里一个一个地读取整数,将它们相乘并显示读取整数的乘积。读取整数的循环当用户按下 0 时停止。如果用户输入 0 作为第一个数字,则用户将无法提供任何其他数字(不添加产品中的最后一个 0)。在这种情况下,程序应该显示“No numbers entered!”

这是我的代码

ProductNumbers.java

package L04b;

import java.lang.reflect.Array;
import java.util.Scanner;

public class ProductNumbers {

public static void main(String[] args) {
int num = -1;
boolean isValid = true;
int numbersEntered = 0;
int product = -1;
Scanner scnr = new Scanner(System.in);
System.out.println(
"This program reads a list of integers from the user\r\n"
+ "and shows the product of the read integers");

while (num != 0) {
System.out.print("Enter number = ");
int curNum = scnr.nextInt();

if (curNum == 0)
break;
numbersEntered++;
product *= num;
}
if (numbersEntered == 0) {
System.out.println("No numbers entered!");
} else {
System.out.println(product);
}

}
}

我知道这是完全错误的,我通常会设置一个模板,试着找出需要更改的内容,然后按照这种方式进行,我还需要开始跳出框框思考并学习不同的功能,因为我不知道如果输入的第一个数字是 0 我将如何结束它,如果最后一个数字是 0,程序停止而不乘以最后一个 0(这样乘积不会最终为 0)...我需要有人指导我如何做到这一点。

这是我希望它如何工作的示例输出

This program reads a list of integers from the user
and shows the product of the read integers
Enter the number:
0
No numbers entered!

This program reads a list of integers from the user
and shows the product of the read integers
Enter the number:
2
Enter the number:
-5
Enter the number:
8
Enter the number:
0
The product of the numbers is: -80

最佳答案

你有一个嵌套的 for 循环,为什么?
您只需要获取用户输入的外部 while 循环,直到输入为 0
还有这一行:

product *= i;

乘以 ifor 循环的计数器是 product 而不是用户的输入!
稍后,在这一行:

if (isValid = true)

如果要进行比较,应该将=替换为==,尽管这样更简单:

if (isValid)

您的代码可以简化为:

int num = -1;
int product = 1;
int counter = 0;
Scanner scnr = new Scanner(System.in);
System.out.println(
"This program reads a list of integers from the user\r\n"
+ "and shows the product of the read integers");
while (num != 0) {
System.out.print("Enter a number: ");
num = scnr.nextInt();
scnr.nextLine();
if (num != 0) {
counter++;
product *= num;
System.out.println(product);
}
}

if (counter == 0)
System.out.println("No numbers entered");
else
System.out.println("Entered " + counter + " numbers with product: " + product);

关于java - 用户输入数字的乘积,当用户输入0时程序停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54597334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com