关于Java的switch语句

由于我的Java的switch语句遇到了困难,所以我把它记录下来作为备忘录。

使用for循环和switch语句编写一个程序,通过命令行参数传递蛋糕和数量,然后显示总金额。

首先,将商品的信息赋值给变量。

//商品名と価格を変数に代入
		String cake1 = "ショートケーキ";
		int cakePrice1 = 320;
		String cake2 = "モンブラン";
		int cakePrice2 = 350;
		String cake3 = "チョコレートケーキ";
		int cakePrice3 = 370;
		String cake4 = "いちごのタルト";
		int cakePrice4 = 400;
		String cake5 = "チーズケーキ";
		int cakePrice5 = 300;

使用switch语句检索下一个输入的蛋糕价格,并在for循环中重复添加。

String order = "";
		for(int i = 0; i < args.length; i += 2) {
			order = args[i];
			price = 0;     
			switch(order) {
				case cake1:
					price = cakePrice1 * Integer.parseInt(args[i+1]);
				    price += price;
				    break;
				case cake2:
					price = cakePrice2 * Integer.parseInt(args[i+1]);
				    price += price;
				    break;
				case cake3:
					price = cakePrice3 * Integer.parseInt(args[i+1]);
				    price += price;
				    break;
				case cake4:
					price = cakePrice4 * Integer.parseInt(args[i+1]);
				    price += price;
				    break;
				case cake5:
					price = cakePrice5 * Integer.parseInt(args[i+1]);
				    price += price;
				    break;
			}
		}

然而,即使执行上述操作,case语句也必须是一个常量表达式,否则会出现错误。

由于声明变量的错误,结果如下所示。
这意味着必须是常量表达式,意味着必须不可更改。
换句话说,重新声明变量如下所示。

        final String CAKE1 = "ショートケーキ";
		int cakePrice1 = 320;
		final String CAKE2 = "モンブラン";
		int cakePrice2 = 350;
		final String CAKE3 = "チョコレートケーキ";
		int cakePrice3 = 370;
		final String CAKE4 = "いちごのタルト";
		int cakePrice4 = 400;
		final String CAKE5 = "チーズケーキ";
		int cakePrice5 = 300;

这个错误已经解决了。