2016-10-02 134 views
1

这是我试图运行的程序要求。我实际上更喜欢If和Else语句,但是再一次,要求只使用switch语句。扑克牌开关编程

在您的项目文件夹内创建一个新的Java类。 该类别的名称应为:CardConverter

编写一个程序,该程序从用户处读取2-3个字符的字符串(这将是用于描述纸牌的简写符号)并输出该卡的完整描述。

首先,你会从用户那里得到字符串。使用单个nextLine命令输入字符串。 (A,J,Q,K,2,3,4,5,6,7,8,9或10) 后面跟另一个字母: (D ,H,S,C)

获取输入后,你的程序应该再打印到屏幕卡的完整描述的格式如下: VALUE西装

号卡不应该被拼写 - 只显示号码;然而,面对卡片需要被拼写出来。

例如这里有一些可能的输入值,从程序输出的预期一起:

如果用户输入的QS,你的程序应该打印:黑桃 如果用户输入啊,你的程序应该女王打印:爱心王牌 如果用户输入7C,您的程序应该打印:7个俱乐部 如果用户输入10D,您的程序应打印:10个钻石 如果用户输入KC,您的程序应打印:King of Clubs 如果用户输入JS,您的程序应该打印:黑桃杰克

技术笔记&要求:

您不被允许在本程序中使用“IF”语句!您必须使用SWITCH语句来创建此程序。 创建一个名为result的变量 使用SWITCH语句为结果变量分配一个初始值 - 卡的值 使用第二个SWITCH语句来协调结果变量卡的套装 您可以假设输入是正确的,因此您不必担心添加任何类型的错误处理可能性。

这是我的代码到目前为止。我运行程序只是测试案例1,但没有输出,我错过了什么?

//The program will describe a playing card after the user inputs a 2-3 character string. 

import java.util.*; 
public class CardConverter { 

    public static void main(String[] args) { 
     Scanner kbd = new Scanner(System.in); 

     //Variable decoration 
     String userinput; 

     //int ; 



     System.out.print("Please input 2-3 characters by selecting from the following: A, C, D, E, H, J, K, Q, S, 2, 3, 4, 5, 6, 7, 8, 9 or 10: "); 
     userinput = kbd.next().toUpperCase(); 

     switch (userinput){ 

      case "1": userinput.contains("AH"); 
      System.out.println("Ace of HEARTS"); 
     } 
    } 
} 

这里是代码的更新版本至今:

//该程序的用户输入2-3字符串之后将描述一个扑克牌。

import java.util。*; 公共类CardConverter {

public static void main(String[] args) { 
    Scanner kbd = new Scanner(System.in); 

    //Variable decoration 
    String result; 

    //int ; 



    System.out.print("Please input 2-3 charactes by selecting from the following: A, C, D, E, H, J, K, Q, S, 2, 3, 4, 5, 6, 7, 8, 9 or 10: "); 
    result = kbd.next().toUpperCase(); 

    switch (result){ 

     case "AH": 
      System.out.println("Ace of Hearts"); 
     break; 

     case "AD": 
      System.out.println("Ace of Diamonds"); 
      break; 

     case "AC": 
      System.out.println("Ace of Clubs"); 
      break; 

     case "AS": 
      System.out.println("Ace of Spades"); 
      break; 

    }//Goes with switch 









    kbd.close(); 
} 

}

+0

哇。试着大声读出来。如果你喜欢,转换为“if”:'如果userinput等于1,那么如果用户输入包含“AH”'发现问题? – John3136

+1

您可以通过'switch'模拟任何'if'。 G。通过一些像'布尔结果=(write_your_expression_here)这样的结构; switch(result){case true:{do_something_on_true();打破; } case false:{do_something_on_false(); break;}}' – Jireugi

回答

-1

OK ......这是非常简单的,所有您需要做的是改变

case "1": 

case "AH": 
3

你,确实失去了一些东西。

case "1":声明,如果开关变量(userinput),然后将下面的代码会被执行的情况下("1")匹配:

userinput.contains("AH"); 
System.out.println("Ace of HEARTS"); 

好像你认为userinput.contains("AH")是被检查的条件。这不是switch语句的工作原理。请尝试:

case "AH": 
    System.out.println("Ace of Hearts"); 

您应该在尝试编写自己的代码之前对switch语句的工作方式进行研究。一个更好的起点应该是谷歌。比如对于“java开关教程”一个简单的搜索找到我:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

+0

太棒了.....总是有点简单,我忽略了。希望有更多的练习,对细节的关注不会成为问题。再次感谢。 – OneStepForward

+0

@OneStepForward相信我,关注细节永远是一个问题。不要担心,这对每个人都是这样。无论如何,我很乐意提供帮助。请记住加入并接受。 – nhouser9