当从键盘输入10个数字时,从while循环打印最大数字

时间:2014-10-13 13:23:34

标签: java while-loop

每次我的输出打印出通过扫描仪给出的最后一个数字作为最大数字。该程序需要以某种方式进行修改,它扫描我输入的数字并打印出最大的数字。

P.S这不是学校的工作,它只是在业余时间编码。

import java.util.Scanner;

public class FindTheLargestNumber {

    public static void main(String[] args) {

        int counter = 1;
        int number;
        int largest = 0;

        Scanner input = new Scanner(System.in);

        System.out.println("Enter the number: ");
        number = input.nextInt();

        while(counter < 10)
        {
            System.out.println("Enter the number: ");
            number = input.nextInt();

            counter++;

        }


        if(number > 1)
            largest = number;


        System.out.println("the largest number is " + largest);
    }
}

CONSOLE:

Enter the number: 
123

Enter the number: 
443

Enter the number: 
221

Enter the number: 
453

Enter the number: 
553

Enter the number: 
665

Enter the number: 
776

Enter the number: 
23

Enter the number: 
12

Enter the number: 
23


output: 
the largest number is 23

它应该清楚地打印776,但它打印我输入的最后一个数字。

3 个答案:

答案 0 :(得分:4)

您正在检查最后接受的号码,如果它大于1,您将其分配给最大号码。但是你必须确保检查所有数字并将它们进行比较以获得最大的数字。

此代码适用于您

import java.util.Scanner;
public class test {
    public static void main(String[] args) {

        int counter = 1;
        int number;
        int largest = 0;

        Scanner input = new Scanner(System.in);

        System.out.println("Enter the number: ");
        number = input.nextInt();

        while(counter < 10)
        {
            System.out.println("Enter the number: ");
            number = input.nextInt();

            if(largest < number) {
                largest = number;
            }

            counter++;

        }

        System.out.println("the largest number is " + largest);
    }
}

答案 1 :(得分:2)

这里你正在检查循环外的条件,它只检查最后一个输入。当你在循环之前接受第一个值时,你应该在循环之前将该值设置为最大值。 khelwood指出)

所以它应该是这样的,

System.out.println("Enter the number: ");
number = input.nextInt();
largest=number;
while(counter < 10){
    System.out.println("Enter the number: ");
    number = input.nextInt();        
    if(number > largest)//If largest is small, set current number as largest
        largest = number;
    counter++;
}

答案 2 :(得分:1)

你应该在while循环中移动它:

if(number > largest)
    largest = number;