gpt4 book ai didi

java - 计数输出不正确

转载 作者:行者123 更新时间:2023-12-01 22:34:57 24 4
gpt4 key购买 nike

我正在编写一个程序,该程序将继续接受数字,直到用户输入 -1。然后会显示能被9整除的项数;使用特殊的属性 - 能被 9 整除的数字的数字和本身也能被 9 整除。有人告诉我要依赖高度模块化方法。简单的输入,没有数组。

没有编译错误之类的东西,但是count的值总是错误的。例如,如果我输入 18,18,4,4,2,5,19,36,-1,预期输出是 3,但输出结果却是如4.我不知道为什么。我尝试过 count++ 和++count,它们产生相同的输出。我哪里出错了?

import java.util.Scanner;
public class Div{
static Scanner sc = new Scanner(System.in); boolean run = true; static int n = 0;
static int count = 0;
public static void main(String[] args){

Div a = new Div();
a.accept();
a.display();

}
void accept(){
while (run){
System.out.println("Enter the number");
n = sc.nextInt();
if (isDivisibleByNine(n)){
count = count + 1;
}
if (n == -1){
run = false;
}
}
}
static int sumOfDigits(int a){
int m = a; int sum = 0;
while (m>0){
sum = sum + (m%10); m /= 10;
}
return sum;
}
static boolean isDivisibleByNine(int x){
if (sumOfDigits(x)%9==0){
return true;
}
else {
return false;
}

}
void display(){
System.out.println("The total number of numbers that are divisible are: " + count);
}
}

最佳答案

问题出在你的最终值-1上。对于 -1,您的 sumOfDigits 函数也将返回 0。因此只有 count 总是增加 1。

while (run){
System.out.println("Enter the number");
n = sc.nextInt();
if (n == -1){
break; //Break if the end of input reached.
}
if (isDivisibleByNine(n)){
count = count + 1;
}

}

关于java - 计数输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26994489/

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