Java 增量计算不正确

Java 增量计算不正确,java,Java,我的increment和exit语句没有正确显示。这个项目是一个类,我要创建一个java程序,提示用户输入,并存储最大数量的输入和输入次数。我的程序没有正确计数它没有计算输入增量的第一个数字 首先键入0时,程序应打印输出 Enter an integer <0 ends the input>: 0 No numbers are entered except 0 但它一直在打印计数 Enter an integer <0 ends the input>: 0 No num

我的increment和exit语句没有正确显示。这个项目是一个类,我要创建一个java程序,提示用户输入,并存储最大数量的输入和输入次数。我的程序没有正确计数它没有计算输入增量的第一个数字

首先键入0时,程序应打印输出

Enter an integer <0 ends the input>: 0
No numbers are entered except 0
但它一直在打印计数

Enter an integer <0 ends the input>: 0
No numbers are entered except 0
The maximum number is 0
The count for the max number is 1
代码:


在评论中很难正确解释

int number = -1, max = 0, count = 1;
Scanner input = new Scanner(System.in);
int askedCount = 0;

while(true){
    System.out.print("Enter an integer <0 ends the input>: ");
    number = input.nextInt();
    askedCount++;

    if (number == 0) {
        break;
    }

    if (number > max){
        max = number;
    } else if(number == max){
        count++;
    } 
}

if (askedCount <= 1) {
    System.out.println("No numbers are entered except 0");
} else {
    System.out.println("The maximum number is " + max);
    System.out.println("The count for the max number is " + count);
}

根据您对Joakim的原始帖子的评论,听起来您希望else语句中的第二部分只在您的数字不为0时出现

 int number=0, max=0, count =1;
        Scanner input = new Scanner(System.in);

        //collecting user information
        System.out.print("Enter an integer <0 ends the input>: ");
        number = input.nextInt();
        if (number ==0){
            System.out.println("No numbers are entered except 0");
        }
    else{
        while(number !=0){
            System.out.print("Enter an integer <0 ends the input>: ");
            number = input.nextInt();

            if (number > max){
                max = number;
            }
            else if(number == max){
                count++;
            }
        }

        System.out.println("The maximum number is " +max);
        System.out.println("The count for the max number is " +count);
    }

删除while循环之前的行,它们没有意义。您还需要将数字初始化为负值。在输入的第一个数字为0的情况下,我们需要有一个特定的输出语句,并且该语句应该读取除0之外未输入任何数字,但out包括max或count。如果不打印count和max,我似乎无法将语句输出?@waffilendbacon我添加了一个新变量以保持总计数,稍微更改了循环,然后使用该计数器检查要打印的内容。
 int number=0, max=0, count =1;
        Scanner input = new Scanner(System.in);

        //collecting user information
        System.out.print("Enter an integer <0 ends the input>: ");
        number = input.nextInt();
        if (number ==0){
            System.out.println("No numbers are entered except 0");
        }
    else{
        while(number !=0){
            System.out.print("Enter an integer <0 ends the input>: ");
            number = input.nextInt();

            if (number > max){
                max = number;
            }
            else if(number == max){
                count++;
            }
        }

        System.out.println("The maximum number is " +max);
        System.out.println("The count for the max number is " +count);
    }