2015-11-14 24 views
0

我有一段代碼打印整個菜單,然後提供給用戶從給出的選項中進行選擇。菜單打印(像這樣)後:Switch Case菜單沒有被執行

System.out.println("VCP ­ Ver a conversa em progresso"); 
System.out.println("PNM ­ Publicar nova mensagem "); 
System.out.println("PME - Publicar mensagem encriptada"); 
System.out.println("CMA - Corrigir mensagem anterior"); 
System.out.println("ECP - Encerrar conversa em progresso"); 
System.out.println("MCA - Mostrar conversas anteriores"); 
System.out.println("A - Ajuda"); 
System.out.println("S - Sair"); 

我需要做的switch-case用戶能夠選擇一個選項:

String menu = scan.nextLine(); 
System.out.println(menu); 
    switch(menu){ 
    case "VCP": 
     System.out.println("VCP P"); 
     break; 
    case "PNM": 
     System.out.println("PNM"); 
     break; 
    case "PME": 
     meuProjecto.PME(); 
     break; 
    case "CMA": 
     meuProjecto.CMA(); 
     break; 
    case "ECP": 
     meuProjecto.ECP(); 
    case "MCA": 
     meuProjecto.MCA(); 
     break; 
    case "A": 
     System.out.println("VCP ­ Ver a conversa em progresso"); 
     System.out.println("PNM ­ Publicar nova mensagem "); 
     System.out.println("PME - Publicar mensagem encriptada"); 
     System.out.println("CMA - Corrigir mensagem anterior"); 
     System.out.println("ECP - Encerrar conversa em progresso"); 
     System.out.println("MCA - Mostrar conversas anteriores"); 
     System.out.println("A - Ajuda"); 
     System.out.println("S - Sair"); 
     break; 
    } 

現在的問題是:在初始菜單被打印,但程序結束。我沒有收到錯誤信息,也沒有收到任何警告。我正在使用1.8版本。 請注意,我是一般社區和編程新手。任何形式的幫助都會受到歡迎。

在此先感謝。

+0

顯然,所述用戶輸入是在所述開關殼體中未列出的字符串。 – oarfish

+1

您需要將用戶的回覆讀入變量。在你的情況下,這將是最簡單的方式來包裝你在某種循環中發佈的整個代碼,並添加一個選項來結束程序在你的菜單中(也許你已經這樣做了,我不明白你用於你的語言輸出)。 – Turing85

+0

我也希望編程這樣的菜單,但這是一個學校的算法,他們要求像這樣... – Osomon

回答

0

我想你需要的東西是這樣的:

  • 一個循環的代碼;
  • 帶退出選項;
  • 有一個處理無效輸入的選項。

import java.util.Scanner; 
 

 
public class Teste { 
 

 
public static void main(String args[]) { 
 

 
MeuProjecto meuProjecto = new MeuProjecto(); 
 
Scanner scanner = new Scanner(System.in); 
 
boolean sair = false; 
 
while (!sair) { 
 

 
    String menu = scanner.nextLine(); 
 
    System.out.println(menu); 
 
    switch(menu){ 
 
     case "VCP": 
 
      System.out.println("VCP P"); 
 
      break; 
 
     case "PNM": 
 
      System.out.println("PNM"); 
 
      break; 
 
     case "PME": 
 
      meuProjecto.PME(); 
 
      break; 
 
     case "CMA": 
 
      meuProjecto.CMA(); 
 
      break; 
 
     case "ECP": 
 
      meuProjecto.ECP(); 
 
     case "MCA": 
 
      meuProjecto.MCA(); 
 
      break; 
 
     default: 
 
      System.out.println("Opção inválida!"); 
 
     case "A": 
 
      System.out.println("VCP ­ Ver a conversa em progresso"); 
 
      System.out.println("PNM ­ Publicar nova mensagem "); 
 
      System.out.println("PME - Publicar mensagem encriptada"); 
 
      System.out.println("CMA - Corrigir mensagem anterior"); 
 
      System.out.println("ECP - Encerrar conversa em progresso"); 
 
      System.out.println("MCA - Mostrar conversas anteriores"); 
 
      System.out.println("A - Ajuda"); 
 
      System.out.println("S - Sair"); 
 
      break; 
 
     case "S": 
 
      sair = true; 
 
    } 
 

 
} 
 

 
} 
 

 
}

+0

謝謝。這是工作。不完全按照它被告知的方式,但沒關係。無論如何,這是愚蠢的。非常感謝你 :) – Osomon