繁体   English   中英

用Java读取多个整数

[英]Reading Multiple Integers in Java

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

有两类顾客:

0至5岁:儿童–免费($ 0)

5至18岁:学生-$ 5

我应该

获取顾客的年龄确定顾客属于哪个类别并增加该类别的数量

继续执行步骤1和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收入

孩子们:0学生人数:2学生收入:10

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

成人收入:80老年人数量是:2老年人收入:

20

我怎样才能使输出的孩子数为:2孩子的收入:

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

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

成人收入:80老年人数量是:2老年人收入:

20

提前致谢。

发生这种情况是因为您实际上并未读取所有整数,而只是读取了第一个整数。 您要更新numbers变量( number将是一个更好的名称)。

它看起来类似于:

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

        .... // do your processing
    }

应该尝试这样的事情:

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);
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM