增量计数不正确

时间:2018-10-01 19:03:22

标签: java

我的增量和退出语句显示不正确。这个项目是针对一个类的,我将创建一个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, 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");
}
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);

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:1)

基于您对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);
    }