Kinglongg 2021-09-10 13:27 采纳率: 100%
浏览 41
已结题

程序执行后录入的商品信息能显示,但是查询不到,有boss能解答一下吗?

import java.util.Scanner;

/*
实现:菜单显示、商品信息展示、商品信息录入、商品信息查询、退出的功能
*/
public class Test20 {

static String []names = new String[10];
static int []price =  new int[10];
static int []number = new int[10];



public static void main(String[] args) {
    names[0] = "华为";
    names[1] = "小米";
    names[2] = "VIVO";
    names[3] = "中兴";
    price[0] = 5350;
    price[1] = 4230;
    price[2] = 3320;
    price[3] = 1250;
    number[0] = 10 ;
    number[1] = 30 ;
    number[2] = 32 ;
    number[3] = 23 ;
    f1();

}

private static void f6() {
    System.out.println(names[4]);
    System.out.println(price[4]);
    System.out.println(number[4]);
    System.out.println(names[5]);
    System.out.println(price[5]);
    System.out.println(number[5]);
}

//显示目录
private static void f1() {
    while (true){
        System.out.println("1.商品列表");
        System.out.println("2.商品查询");
        System.out.println("3.商品录入");
        System.out.println("4.退出");
        System.out.println("请输入选项:");
        f5();
    }
}

//接收用户输入的选项进入相应功能
private static void f5() {
    int  c = new Scanner(System.in).nextInt();
    switch (c){
        case 1 :
            f2();
            break;
        case 2 :
            f4();
            break;
        case 3 :
            f3();
            break;
        case  4 :
            break;
        case 5 :
            f6();
            break;
        default:
            System.out.println("输入错误!");
            return;
    }
}

//进行商品的查询
private static void f4() {
    System.out.println("请输入商品名称:");
    String name =  new Scanner(System.in).nextLine();
    for (int i = 0 ; i <names.length ; i++) {
        if (name.equalsIgnoreCase(names[i])){
            System.out.println("商品名称:"+ names[i]);
            System.out.println("价格:"+ price[i]);
            System.out.println("数量:"+ number[i]);
        }else {
            System.out.println("商品不存在");
        }
        return;
    }

}

//进行商品信息的录入
private static void f3() {
    System.out.println("请输入商品名:");
    String name = new Scanner(System.in).nextLine();
    System.out.println("请输入商品价格:");
    int pay = new Scanner(System.in).nextInt();
    System.out.println("请输入商品数量:");
    int num = new Scanner(System.in).nextInt();

    try{
        for (int i = 0; i < names.length; i++) {
            if (names[i]==null){
                names[i]= name;
                price[i]= pay;
                number[i]= num;
                return;
            }
        }

    }catch (IndexOutOfBoundsException e){
        e.getMessage();
    }
}

//输出商品列表
private static void f2() {
    for (int i = 0; i < names.length; i++) {
        System.out.println("产品:"+names[i] + ",价格:"+price[i] +",数量:"+number[i]);
    }
}

}

  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2021-09-10 13:39
    关注

    商品查询的方法逻辑不对。你的逻辑是遍历查询,判断第一个数组中是否相等,不相等就结束了。
    修改后的商品查询代码如下:

    //进行商品的查询
    private static void f4() {
            System.out.println("请输入商品名称:");
            String name =  new Scanner(System.in).nextLine();
            boolean flag=true;
            for (int i = 0 ; i <names.length ; i++) {
                if (name.equalsIgnoreCase(names[i])){
                    System.out.println("商品名称:"+ names[i]);
                    System.out.println("价格:"+ price[i]);
                    System.out.println("数量:"+ number[i]);
                    flag=false;
                    break;
                }
            }
            if (flag){
                System.out.println("商品不存在");
            }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月18日
  • 已采纳回答 9月10日
  • 创建了问题 9月10日

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?