案例介绍:编写一个超市购物程序,在一家超市有牙刷、毛巾、水杯、苹果和香蕉五种商品,商品价格如下表所示。
编号 | 商品名称 | 价格 |
1 | 牙刷 | 8.8元 |
2 | 毛巾 | 10.0元 |
3 | 水杯 | 18.8元 |
4 | 苹果 | 12.5元 |
5 | 香蕉 | 15.5元 |
用户输入商品序列号进行商品购买,用户输入购买数量后计算出所需要花费的钱,一次购买结束后,需要用户输入“Y”或“N”,“Y”代表继续购买,“N”代表购物结束。
案例思路:
- 从运行结果可以看出,我们需要先定义5个商品的价格,double类型,再打印出5种商品的价格。
- 从运行结果可以看出,这里我们让用户填写购买商品的序列号以及购买的数量,需要使用到Scanner类。
- 从运行结果可以看出,我们循环了选择购买的条件语句,这里使用while嵌套switch语句可以达到我们的目的,我们需要使用while循环switch的选择结构,而switch是判断用户选择购买商品序列号的条件语句。
案例实现:
public class Main {
public static void main(String[] args) {
/*
* 模拟商城购物小系统:1.用户选择商品后,后台计算商品价格;
* 2.使用while循环实现用户多次购买商品。
*/
double toothbrush=8.8; //牙刷价格
double towel=10.0; //毛巾价格
double cup=18.8; //水杯价格
double apple=12.5; //苹果价格
double banana=15.5; //香蕉价格
int i=0;
String a="Y";
System.out.println("-------------黑马小商城-------------");
System.out.println("1.牙刷的价格为:"+toothbrush+"元");
System.out.println("2.毛巾的价格为:"+towel+"元");
System.out.println("3.水杯的价格为:"+cup+"元");
System.out.println("4.苹果的价格为:"+apple+"元");
System.out.println("5.香蕉的价格为:"+banana+"元");
while(a.equals("Y")) {
Scanner sc1 = new Scanner(System.in);
System.out.println("请输入你需要购买商品的序列号:");
i=sc1.nextInt();
switch(i){
case 1:
System.out.println("请输入你需要购买牙刷的数量:");
int toothbrushnnumber=sc1.nextInt();
double toothbrushnnum=toothbrushnnumber*toothbrush;
System.out.println("你购买了牙刷"+toothbrushnnumber+"支,需要花费"+toothbrushnnum+"元");
System.out.println("需要继续购买请输入Y,否则输入N");
a=sc1.next();
break;
case 2:
System.out.println("请输入你需要购买毛巾的数量:");
int towelnumber=sc1.nextInt();
double towelnum=towelnumber*towel;
System.out.println("你购买了毛巾"+towelnumber+"个,需要花费"+towelnum+"元");
System.out.println("需要继续购买请输入Y,否则输入N");
a=sc1.next();
break;
case 3:
System.out.println("请输入你需要购买水杯的数量:");
int cupnumber=sc1.nextInt();
double cupnum=cupnumber*cup;
System.out.println("你购买了水杯"+cupnumber+"个,需要花费"+cupnum+"元");
System.out.println("需要继续购买请输入Y,否则输入N");
a=sc1.next();
break;
case 4:
System.out.println("请输入你需要购买苹果的数量:");
int applenumber=sc1.nextInt();
double applenum=applenumber*apple;
System.out.println("你购买了苹果"+applenumber+"斤,需要花费"+applenum+"元");
System.out.println("需要继续购买请输入Y,否则输入N");
a=sc1.next();
break;
case 5:
System.out.println("请输入你需要购买香蕉的数量:");
int banananumber=sc1.nextInt();
double banananum=banananumber*banana;
System.out.println("你购买了香蕉"+banananumber+"斤,需要花费"+banananum+"元");
System.out.println("需要继续购买请输入Y,否则输入N");
a=sc1.next();
break;
}
}
System.out.println("期待您的下次光临!");
}
}
第9~16行代码我们定义了5种商品的单价以及一个String类型的数据”a”与int类型的数据”i”,”a”用于while循环条件,判断是否继续循环,”i”用于switch选择语句的条件;第17~22行代码打印了各个商品的价格供用户选择,第23~75行代码,为了实现用户多次购买,我们使用while循环语句嵌套switch条件语句。