2013-12-11 77 views
1

它很难解释,但基本上,如果我按3它适用于我所有的情况下部件(开关)。我如何使价值每次都是新的。如果我例如按3,然后将其打印这样的:菜单问题与开关。当我输入我的选择,它适用于所有亩开关

Pasirinkite objekta IR裘metoda -1买家 -2项目 -3店铺 。 Pasirinkite metoda 1名 2电子邮件 3公司代码 4地址 5交货价格 代码北美经销商: Invalis选择

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; 

} 

}}

+0

你想做什么?你的逻辑有点混乱。看看你的switch-in-switch-in-switch:switch(Value){... case 3:... if(Value == 3){... switch(Value){... case 3: ......这一切的预期结果是什么? – bobbel

回答

0

我不知道我的理解这个问题,但我认为你想在每个交换机之间读取一个新值。所以,你应该在这儿加上线从键盘读取再次

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) { 
     .... 

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