所涉及到知识点:
(知识点:数组、boolean、while循环,switch、传参、方法调用)
程序执行图示:
image.png
image.png
代码实现:
package Fangfadiaoyong;
import java.util.Scanner;
public class CommodityDemo {
//下面的public为主方法
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//定义三个数组,分别在三个数组内赋值,直接赋值
//注意引用顺序
String[] pnameArr ={"手机","电脑","冰箱"};
double[] priceArr ={ 3000,5000,8000};
int[] pnumArr ={6,8,7};
//注意有两种结果时可以用假设
boolean isRun = true;
//判断循环条件,为真的情况下,进入循环
//循环里嵌套switch,怎么从switch中退出循环-重点
//循环中嵌套循环,从里层循环跳出外层循环,为外层的循环设置一个循环变量,在里层修改循环变量
while(isRun == true){
System.out.println("请选择您的操作 1.打印库存清单 2.修改商品数量 3.退出");
//定义oper为输入的序号值
int oper = input.nextInt();
//oper为变量,和case后面值对比
switch(oper){
case 1:
//直接在case里面调用
print(pnameArr,priceArr,pnumArr);
break;
case 2:
update(pnumArr);
break;
case 3:
//修改循环条件为假:目的就是跳出外层的while循环
isRun = false;
break;
default:
System.out.println("输入有误,请重新输入");
}
}
System.out.println("欢迎再来!");
}
//以下三个public....都为子方法
//问题:怎么判断是否需要有返回值
public static void print(String[] pnameArry,double[] priceArry,int[] pnumArry){
System.out.println("\t商品名称\t商品价格\t商品数量\t");
//定义一个总数量
int count = 0;
//定义一个总金额
int price = 0;
//通过for循环让列表循环输出
for(int i = 0;i < pnameArry.length;i++){
System.out.println((i+1)+"\t" + pnameArry[i] +"\t" + priceArry[i] + "\t" + pnumArry[i] + "\t");
//将数量通过循环进行增加
//将金额通过循环进行增加
count += pnumArry[i];
price += priceArry[i] * pnumArry[i];
}
System.out.println("商品的总数:" + count);
System.out.println("商品的总金额:" + price);
}
//修改商品数量
public static void update(int[] pnumArray){
Scanner input = new Scanner(System.in);
//请输入商品编号
System.out.println("请输入商品编号");
int id = input.nextInt();
System.out.println("请输入商品数量");
//修改数量数组中相应位置的值
pnumArray[id-1] = input.nextInt();
}
//退出
public static void tuichu(){
//结束程序代码:System.exit(0);
System.exit(0);
}
}