当我输入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");