java - 菜单与开关的问题。当我输入我的选择时,它适用于所有 mu 开关

标签 java menu switch-statement case

这很难解释,但基本上如果我按 3,它适用于我的所有外壳部件(开关)。我如何让值(value)每次都是新的。例如,如果我按 3,则会打印以下内容:

Pasirinkite objekta ir jo metoda -1 买家 -2 项目 -3店 店铺。帕西林矿法 1 姓名 2 电子邮件 3 公司代码 4 地址 5 交货价格 公司代码: 荣军精选

public class Main{
public static void main(String[] args) {
    int Value = 0;



    System.out.println("***************************************Menu***************************************");
    System.out.println("1 - jei norite atspauzdinti programje sukurtu objektu sarasus");
    System.out.println("2 - jei norite sukurti naujus objektus, ju duomenis ivedant is klavieturos");
    System.out.println("3 - jei norite iskviesti objektu metodus");

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    try {
       Value = Integer.parseInt(br.readLine());
    } catch (IOException ioe) {
       ioe.printStackTrace();
    }



    switch (Value) {
    case 1: {
        System.out.println("1 Selected");
        break;
    }
    case 2: 
        System.out.println("2 Selected");
        break;


    case 3: 
        System.out.println("Pasirinkite objekta ir jo metoda");
        System.out.println("-1 Buyer");
        System.out.println("-2 Item");
        System.out.println("-3 Shop");
        if (Value == 3) {
        switch(Value) {


        case 1: 
            System.out.println("Buyer. Pasirinkite metoda");
            System.out.println("1 Email");
            System.out.println("2 Phone Number");
            switch(Value) {
            case 1: 
                System.out.println("Email: ");// + getEmail());
                break;
            case 2:
                System.out.println("Phone number: ");// + getPhoneNumber());
                break;
            }

            break;
        case 2: 
            System.out.println("Item. Pasirinkite metoda");
            System.out.println("1 Name");
            System.out.println("2 Price");
            System.out.println("3 Warranty");
            System.out.println("4 Extra Warrantys");
            //value4 = input.next();
            switch(Value) {
            case 1: 
                System.out.println("Name: ");// + getName());
                break;
            case 2:
                System.out.println("Price: ");// + getPrice());
                break;
            case 3: 
                System.out.println("Warranty: ");// + getWarranty());
                break;
            case 4:
                System.out.println("Extra warranty: ");// + getExtraWarranty());
                break;
            }
            break;
        case 3: 
            System.out.println("Shop. Pasirinkite metoda");
            System.out.println("1 Name");
            System.out.println("2 Email");
            System.out.println("3 Company Code");
            System.out.println("4 Address");
            System.out.println("5 Delivery Price");
            switch(Value) {
            case 1: 
                System.out.println("Name: ");// + getName());
                break;
            case 2:
                System.out.println("Email: ");// + getEmail());
                break;
            case 3: 
                System.out.println("Comapny code: ");// + s.getCompanyCode());
                break;
            case 4:
                System.out.println("Address: ");// + getAddress());
                break;
            case 5:
                System.out.println("Delivery price: ");// + getDeliveryPrice());
                break;
            }

        break;
        }
        }
    default: System.out.println("Invalis selection");
    break;

}

} }

最佳答案

我不确定我是否理解这个问题,但我认为您想在每个开关之间读取一个新值。因此,您应该在此处添加行以再次从键盘读取

case 3: 
    System.out.println("Pasirinkite objekta ir jo metoda");
    System.out.println("-1 Buyer");
    System.out.println("-2 Item");
    System.out.println("-3 Shop");

    try {
        Value = Integer.parseInt(br.readLine());
    } catch (IOException ioe) {
       ioe.printStackTrace();
    }


    if (Value == 3) {
        ....

如果我是你,我会重新排列代码以避免使用嵌套开关和使用更多方法。确实很难读

关于java - 菜单与开关的问题。当我输入我的选择时,它适用于所有 mu 开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20522906/

相关文章:

php - 基于数据库中的数据在 PHP 中动态构建菜单太慢

ruby-on-rails - 您将如何提供用不同(语言环境)语言编写的菜单而不是在每个页面中重复它们?

Javascript html5 canvas 随机 switch 语句图片

Java代码、ASCII艺术、switch语句/结构、输入字符然后将其打印在屏幕上

java - Java 中的后置增量

Java Graphics2D 移动物体停在中间

java - Android - 如何在 setColor 中更改颜色

html - wordpress中的居中导航菜单

javascript - 如何将 JavaScript += 与 switch 语句一起使用

java - C++ 和 Java 中的数组