[英]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.