当前位置: 首页 > 知识库问答 >
问题:

名称/变量输入和列表

姬浩渺
2023-03-14

我正在尝试创建一个程序,允许用户说,输入(橙色/苹果/香蕉等),然后输入他们想要购买的数量,程序将计算总数。然而,在尝试了字符串(不能将它们相乘)和其他一些选项之后,我陷入了困境。我和无数的向导一起浏览了这个论坛,但没有结果。我插入的IF语句只是为了让它正常工作而做的最后一次尝试,当然,它崩溃了。我相信这都是些基本的东西,但我对这方面还很陌生。我还想显示一个列表供选择,可能类似于橘子:Qnty:(框在这里)苹果:Qnty:(框在这里)香蕉:Qnty:(框在这里)等等,但我真的很乐意得到帮助,因为如何允许用户输入一个词,橙色,它被分配了我预设的值,这样我就可以将它乘以数量。感谢所有的帮助,也感谢批评,当然,你知道,在合理的程度上。。。这是我的密码。

/* Name 1, x0000
* Name 2, x0001
* Name 3, x0003
*/
import java.util.Scanner;

public class SD_CA_W3_TEST1
{
public static void main(String args[]) 
{
Scanner in = new Scanner(System.in);
double nameOfItem1, nameOfItem2, nameofItem3;
double quantityItem1, quantityItem2, quantityItem3;
final double apple = 0.30;
final double orange = 0.45;
final double strawberry = 2.30;
final double potato = 3.25;
final double turnip = 0.70;
final double carrot =  1.25;
double totalCost;
String strNameOfItem1;


System.out.println(" \t \t What would you like to buy today?");
System.out.print("Please choose from our fine selection of: oranges, strawberries, potatoes, turnips, and carrots. \n" );

System.out.print("Enter name of product ");
nameOfItem1 = in.nextDouble();
nameOfItem1 = If = nameOfItem1 (apple, orange, strawberry, potato, turnip, carrot);
System.out.print("Please enter a quantity to purchase");
quantityItem1 = in.nextDouble();

totalCost = quantityItem1 * strNameOfItem1;

System.out.print("The total cost of your purchase is: " +totalCost );
}
}

共有3个答案

晏德佑
2023-03-14

枚举似乎是一个不错的选择。它可以帮助您轻松地将商品名称映射到价格,而不是创建几个变量。

private enum Items {
    APPLE(0.30), ORANGE(0.45), STRAWBERRY(2.30),
    POTATO(3.25), TURNIP(0.70), CARROT(1.25);

    double price;

    Items(double price) {
        this.price = price;
    }

    double getPrice() {
        return price;
    }
}

使用扫描器#next()读取字符串,然后使用枚举。valueOf()验证用户输入并将其转换为您的一个项目。

Scanner in = new Scanner(System.in);

System.out.println("What would you like to buy today?");
System.out.println("Please choose from our fine selection of: " +
        "Orange, Strawberry, Potato, Turnip, and Carrot.");
System.out.print("Enter name of product: ");

String nameOfItem = in.next();
Items item;
try {
    // Validate Item
    item = Items.valueOf(nameOfItem.toUpperCase());
} catch (Exception e) {
    System.err.println("No such item exists in catalog. Exiting..");
    return;
}

System.out.print("Please enter a quantity to purchase: ");
int quantity;
try {
    quantity = in.nextInt();
    if (!(quantity > 0)) { // Validate quantity
        throw new Exception();
    }
} catch (Exception e) {
    System.err.println("Invalid quantity specified. Exiting..");
    return;
}

double totalCost = quantity * item.getPrice();
System.out.printf("The total cost of your purchase is: %.2f", totalCost);

输出:

What would you like to buy today?
Please choose from our fine selection of: Orange, Strawberry, Potato, Turnip, and Carrot.
Enter name of product: Strawberry
Please enter a quantity to purchase:3
The total cost of your purchase is: 6.90
麹飞航
2023-03-14

尝试使用枚举,

class Test{

    public enum Fruits{
        apple(0.30), orange(0.45), strawberry(2.30), potato(3.25);

        private final double value;

        Fruits(double value1){
            value = value1;    
        }

        public double getValue(){
            return value;    
        }
    }

     public static void main(String[] args) {

        int quantity = 0;            
        // Read your value here and assign it to quantity

        System.out.println(Fruits.apple.getValue()*quantity);

    }

}
濮阳钟展
2023-03-14

我会使用HashMap。这是一个很好的教程:http://www.tutorialspoint.com/java/util/hashmap_get.htm

HashMap food = new HashMap();
food.put("Apple", 0.30);
food.put("Orange", 0.45);
...

然后使用

food.get("Apple");

给你价格。

总计如下:

double quantity = 4.0;    
double total = food.get("apple") * quantity;
 类似资料:
  • 我试图使用psycopg2从postgres数据库的特定表中获取一组对象。我看到的关于将变量传递给游标的所有建议。execute(SQL)命令似乎无法处理两种类型的变量 这是我第一次累了但没用的东西: 这总是在插入表名称时返回语法错误

  • 问题内容: 我在python中有此代码。 我将从这样的命令行运行此脚本 因此,我需要一种使len使用列表而不是变量的方法,我只想在var中给出列表的名称。 我知道在这个例子中我可以做 但是我的脚本上有13个列表,我需要一种方法,可以通过在命令行上输入的名称来引用它们。 问题答案: 尽管这在Python中是完全可能的,但不是必需的。最好的解决方案是不执行此操作,而是使用字典。 您会注意到脚本中有13

  • 问题内容: 我在PHP中有一个POST,但我并不总是知道将要处理的变量字段的名称。 我有一个可以遍历值的函数(但是我也想捕获它附带的变量名。) 一旦弄清楚如何获取变量名,我还需要弄清楚如何使函数足够智能以检测和遍历变量的数组(如果存在)(即如果我有一些复选框值)。 问题答案: 如果您只想打印整个$ _POST数组以验证是否正确发送了数据,请使用print_r: 要递归打印数组的内容: 将一些填充应

  • 可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量,以及文件上传信息。 获取PARAM变量 PARAM变量是 TP5推荐的获取请求参数的方式 // 获取当前请求的id变量 $request->param('id'); // 获取当前请求的所有变量(已过

  • 请参考:http://www.kancloud.cn/manual/thinkphp/1721

  • 可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量,以及文件上传信息。 获取PARAM变量 PARAM变量是 TP6.0推荐的获取请求参数的方式 // 获取当前请求的id变量 $request->param('id'); // 获取当前请求的所有变量(