在Java中读取多个整数

时间:2017-10-02 04:27:39

标签: java

Input : age of each patron (end of input denoted by a value < 0)
     

有两类顾客:

     

0至5岁:孩子 - 免费($ 0)

     

5至18岁:学生 - $ 5

     

我应该

     

获取顾客的年龄确定顾客所属的类别   进入&amp;增加该类别的数量

     

继续做第1步和第2步2   直到达到输入结束一旦达到输入结束•

     

计算每个类别产生的收入(顾客数量)   在该类别*类别中的费率)

     

•当天的总收入   (所有4个类别的收入总和)生成以下输出   格式

     

•佩罗博物馆:

     

今天的收入

     

•孩子数量:*****

     

•儿童收入:0美元

     

•学生人数:****

     

•学生收入:$ ****

这是我的代码:

import java.util.Scanner;

    public class MyClass {
        public static void main(String args[]) {
            int kidsPrice = 0;
            int studentPrice=5;
            int adultPrice=20;
            int seniorsPrice = 10;
            int numberOfKids =  0; 
            int numberOfStudents = 0;
            int numberOfAdults = 0 ;
            int numberOfSeniors = 0;


            System.out.println("Enter Age ");
            Scanner input = new Scanner(System.in);
            int numbers = input.nextInt();
            while(input.hasNext()){
                if(numbers >= 0 && numbers <= 5){
                    ++numberOfKids;
                    System.out.println("Number of kids is: " + numberOfKids);
                    System.out.println("Revenue from kids:  " + numberOfKids * kidsPrice);
                }

                if (numbers >= 5 && numbers <= 18){
                    ++numberOfStudents;
                    System.out.println("Number of Students is: " + numberOfStudents);
                    System.out.println("Revenue from Students:  " + numberOfStudents * studentPrice);
                }

                else if (numbers >= 19 && numbers <= 65){
                    ++numberOfAdults;
                    System.out.println("Number of Adults is: " + numberOfAdults);
                    System.out.println("Revenue from Adults:  " + ++numberOfAdults * adultPrice);
                }
                 else if (numbers > 65){
                    ++numberOfSeniors;
                    System.out.println("Number of Seniors is: " + numberOfSeniors);
                    System.out.println("Revenue from Seniors:  " + numberOfSeniors * seniorsPrice);
                }
}
}
  

但是,当我输入

时,代码会正确编译并运行      

4 6 20 70 5 7 21 72我明白这一点:输入年龄孩子数:1

     

儿童收入:0学生人数:1学生收入:

     

5成人人数:1名成人收入:40名老年人

     

是:1来自老年人的收入:10孩子的数量是:2来自

的收入      

kids:0学生人数:2学生收入:10人数

     

学生是:3学生收入:15成人人数:3

     

成人收入:80岁的老年人:2来自老年人的收入:

     

20

     

我如何才能使输出只是孩子的数量是:2来自孩子的收入:

     

0学生人数:2学生收入:10人数

     

学生是:3学生收入:15成人人数:3

     

成人收入:80岁的老年人:2来自老年人的收入:

     

20

提前致谢。

2 个答案:

答案 0 :(得分:3)

这是因为你实际上并没有阅读所有的整数,你只是阅读第一个整数。 您想要更新numbers变量(number是一个更好的名称)。

它看起来类似于:

    int number = 0;
    while (input.hasNext()) {
        number = input.nextInt();

        .... // do your processing
    }

答案 1 :(得分:1)

应该尝试这样的事情:

public static void main(String args[])
{
   int kidsPrice = 0;
   int studentPrice=5;
   int adultPrice=20;
   int seniorsPrice = 10;
   int numberOfKids =  0; 
   int numberOfStudents = 0;
   int numberOfAdults = 0 ;
   int numberOfSeniors = 0;

   System.out.println("Enter Age ");
   try (Scanner input = new Scanner(System.in))
   {
      while (input.hasNext())
      {
         int numbers = input.nextInt();
         if (numbers < 0)
            // TODO
         else if (numbers <= 5)
            ++numberOfKids;
         else if (numbers <= 18)
            ++numberOfStudents;
         else if (numbers <= 65)
            ++numberOfAdults;
         else
            ++numberOfSeniors;
      }
      System.out.println("Number of kids is: " + numberOfKids);
      System.out.println("Revenue from kids:  " + numberOfKids* kidsPrice);
      System.out.println("Number of Students is: " + numberOfStudents);
      System.out.println("Revenue from Students:  " + numberOfStudents * studentPrice);
      System.out.println("Number of Adults is: " + numberOfAdults);
      System.out.println("Revenue from Adults:  " + ++numberOfAdults * adultPrice);
      System.out.println("Number of Seniors is: " + numberOfSeniors);
      System.out.println("Revenue from Seniors:  " + numberOfSeniors * seniorsPrice);
   }
}