当我输入itemType时,它会打印出一个实际的类型,而不仅仅是一个Int 打包作业; 导入java.util.Scanner; 公共课家庭作业2图书馆罚款{ 公共静态void main(字符串[]args){ //变数 int卡号; 智力年龄; 逾期未交; int itemType; 双倍过量罚款; 整数微调; int books=1; int=2; int-dvd=3; 扫描仪输入=新扫描仪(System.in); System.out.println(“输入用户的图书卡号”); cardNumber=input.nextInt(); System.out.println(“输入用户年龄”); age=input.nextInt(); System.out.println(“输入项目类型1.书籍,2.杂志,3.DVD”); itemType=input.nextInt(); System.out.println(“输入过期天数”); 过期=input.nextInt(); 系统输出打印项次(“输入逾期罚款”); overdueFine=input.nextDouble(); System.out.println(“输入微调”); fineAdjustment=input.nextInt(); if(overdueFine==书本){ 过量燃油+=0.50; }否则,如果(过量燃油==杂志){ 过量燃油+=0.25; }如果出现其他情况(overdueFine==dvd){ 过量燃油+=1.50; }否则,如果(年龄>70岁){ overdueFine+=0; }否则,如果(年龄>=6&&age
不是那么漂亮,但它可以工作:当我输入itemType时,它会打印出一个实际的类型,而不仅仅是一个Int 打包作业; 导入java.util.Scanner; 公共课家庭作业2图书馆罚款{ 公共静态void main(字符串[]args){ //变数 int卡号; 智力年龄; 逾期未交; int itemType; 双倍过量罚款; 整数微调; int books=1; int=2; int-dvd=3; 扫描仪输入=新扫描仪(System.in); System.out.println(“输入用户的图书卡号”); cardNumber=input.nextInt(); System.out.println(“输入用户年龄”); age=input.nextInt(); System.out.println(“输入项目类型1.书籍,2.杂志,3.DVD”); itemType=input.nextInt(); System.out.println(“输入过期天数”); 过期=input.nextInt(); 系统输出打印项次(“输入逾期罚款”); overdueFine=input.nextDouble(); System.out.println(“输入微调”); fineAdjustment=input.nextInt(); if(overdueFine==书本){ 过量燃油+=0.50; }否则,如果(过量燃油==杂志){ 过量燃油+=0.25; }如果出现其他情况(overdueFine==dvd){ 过量燃油+=1.50; }否则,如果(年龄>70岁){ overdueFine+=0; }否则,如果(年龄>=6&&age,java,Java,不是那么漂亮,但它可以工作: package Homework; import java.util.Scanner; public class Homework2LibraryFines { public static void main(String[] args) { // Variables int cardNumber; int age; int overdue; int itemType; double overdueFine;
package Homework;
import java.util.Scanner;
public class Homework2LibraryFines {
public static void main(String[] args) {
// Variables
int cardNumber;
int age;
int overdue;
int itemType;
double overdueFine;
int fineAdjustment;
int books = 1;
int magazines = 2;
int dvd = 3;
Scanner input = new Scanner(System.in);
System.out.println("Enter patron's library card number");
cardNumber = input.nextInt();
System.out.println("Enter patron's age");
age = input.nextInt();
System.out.println("Enter item type 1.Book, 2.Magazine, 3.DVD");
itemType = input.nextInt();
System.out.println("Enter number of days overdue");
overdue = input.nextInt();
System.out.println("Enter overdue fine");
overdueFine = input.nextDouble();
System.out.println("Enter fine adjustment");
fineAdjustment = input.nextInt();
if (overdueFine == books) {
overdueFine += 0.50;
} else if (overdueFine == magazines) {
overdueFine += 0.25;
} else if (overdueFine == dvd) {
overdueFine += 1.50;
} else if (age > 70) {
overdueFine += 0;
} else if (age >= 6 && age <= 17) {
overdueFine += 1.00;
}
System.out.println(cardNumber + " is " + age + " years old " + "and has an overdue " + itemType + "." + "The "
+ itemType + " is " + overdue + " days overdue");
}
当打印出来时,只需用itemName替换itemType。一个选项是做一个
开关
语句
itemType
变量存储选项,第二个变量存储字符串
string itemName = "";
if (itemType == 1) itemName = "Book";
else if (itemType == 2) itemName = "Magazine";
else if (itemType == 3) itemName = "DVD";
您可以添加一个
开关
语句,根据输入的数字获取实际的字符串
值
String itemT = "";
switch(itemType)
{
case 1:
itemT = "book"
break;
case2:
...
}
并在print
语句中打印item
甚至是有点难看的三元
String item="Book";//making Book the default option
switch (itemType) {
case 1:
item = "Book";
break;
case 2:
item = "Magazine";
break;
case 3:
item = "DVD";
break;
}
除了已经建议的
if
和开关
解决方案之外,您还可以创建一个enum
。这是一种特殊的类,具有有限的值。您可以重写toString()
方法打印出您想要的任何内容。您可以声明和数组项类型,并且在打印时,使用用户输入作为数组中的偏移量
用于存储
String item = itemType == 1 ? "Book" : itemType == 2 ? "Magazine" : itemType == 3 ? "DVD" : "Book";
现在,itemtypesar[1]
指的是“Book”
等等
用于印刷
String itemTypesArr[] = {"", "Book", "Magazine", "DVD"};
开关
也是一个很好的解决方案(因为我们不需要重复itemType==
True,所以没有那么冗长,但因为他似乎是一个初学者,我试图使解决方案尽可能简单。您不需要这里的default
,或者您只需声明item
,并将默认初始化放在default
@AxelH-True中-添加defa是一种习惯。)尽管如此:)好的,谢谢,这使我对开关语句有了更多的了解。另外,你知道我是如何做到的吗?因此,每次执行程序时,它都会计算单个项目的罚款。如果用户输入无效数据,则屏幕上必须显示一条消息,指定无效信息并中止计算。我更希望你这样做保留默认值
并在其中设置“item=”aDefaultValue“
”)但这是我的偏好…@Safo我可能可以,但如果这有意义,最好不要在一个问题上回答多个问题。如果您正在努力计算罚款金额,请提出一个新问题并提供您的尝试(包括输入/输出)并向我们指出哪些计算不正确。您是否考虑过一些解决方案?条件、开关、枚举……请更好地设置您的问题格式,并始终让我们知道您尝试了哪些方法。
System.out.println(cardNumber + " is " + age + " years old " + "and has an overdue " + itemTypesArr[itemType] + "." + "The " + itemTypesArr[itemType] + " is " + overdue + " days overdue");