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
提前致谢。
答案 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);
}
}