扑克牌开关编程

时间:2016-10-02 22:24:31

标签: java string

以下是我试图运行的程序要求。我实际上更喜欢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)

获得输入后,程序应按以下格式在屏幕上打印完整的卡片说明:    SUIT的价值

不应拼写数字卡 - 只显示数字;然而,面部卡片确实需要拼写出来。

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

如果用户输入QS,您的程序应该打印:黑桃皇后 如果用户输入AH,您的程序应该打印:Ace of Hearts 如果用户输入7C,您的程序应打印:7个俱乐部 如果用户输入10D,您的程序应打印:10颗钻石 如果用户输入KC,您的程序应打印:俱乐部之王 如果用户输入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();
}

}

2 个答案:

答案 0 :(得分:3)

你确实错过了一些东西。

case "1":声明如果switch变量(userinput)与大小写("1")匹配,则执行以下代码:

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

您似乎认为userinput.contains("AH")是一个正在检查的条件。这不是switch语句的工作方式。尝试:

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

在尝试自己编写之前,你应该研究一下switch语句的工作原理。一个更好的起点是google。对“java开关教程”的简单搜索发现了我:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

答案 1 :(得分:-1)

好的......这很简单,你所要做的就是改变

    case "1":

    case "AH":