java - 正确使用switch语句

标签 java switch-statement

我要解决的问题是编写一个段落,当我说 1 时,我的程序会在歌曲的第二行显示 thumb。当我的程序显示 2 时,它应该在我歌曲的第二行显示 shoe。我的程序没有按计划运行,我不确定我是否在 for 循环内正确使用了 switch 语句,或者我的程序顺序是否错误。

import acm.program.*;

public class SingChildSong extends ConsoleProgram {
    public void run() {
        for (int i = 1; i < 3; i++){
            println ("This old man, he played" + i);

            switch (i) {
                case 1: println("thumb"); break;
                case 2: println("shoe"); break;
                case 3: println("knee"); break;
            }

            println ("He played knick-knack on my"  + (i));
            println ("With a knick-knack, paddy-whack");
            println ("Give your dog a bone.");
            println ("This old man came rolling home.");

            println ( "" );
        }
    }
}

最佳答案

如果我没猜错,你打算这样做:

...
for (int i = 1; i <= 3; i++){
    System.out.println ("This old man, he played " + i);
    String word;

    switch (i) {
    case 1: word = "thumb"; break;
    case 2: word = "shoe"; break;
    case 3: word = "knee"; break;
    }

    System.out.println ("He played knick-knack on my "  + word);
    System.out.println ("With a knick-knack, paddy-whack");
    System.out.println ("Give your dog a bone.");
    System.out.println ("This old man came rolling home.");

    System.out.println ( "" );
 }
...

正如您所说,您的书中尚未研究字符串,没有字符串的正确答案应该是:

...
for (int i = 1; i <= 3; i++){
    System.out.println ("This old man, he played " + i);

    switch (i) {
    case 1:
        System.out.println ("He played knick-knack on my thumb");
        break;
    case 2:
        System.out.println ("He played knick-knack on my shoe");
        break;
    case 3: 
        System.out.println ("He played knick-knack on my knee");
        break;
    }

    System.out.println ("With a knick-knack, paddy-whack");
    System.out.println ("Give your dog a bone.");
    System.out.println ("This old man came rolling home.");

    System.out.println ( "" );
 }
...

关于java - 正确使用switch语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14370312/

相关文章:

regex - 在 bash 脚本中查找文件夹名称的一部分

java - 使用 switch case 检查用户输入是字符串、整数还是 float

java - 如何从 Java 中的 HashMap 中选择一个随机键?

Java多线程时间切换

java - 如何在java中反向乘以有符号除法字节数组?

java - 显示通用树的节点时,toString 将不会显示预期结果

java - 我在哪里可以下载 JSTL jar

c++ - 我如何根据可迭代对象进行案例陈述?

C#:开关与工厂类中的方法重载

java - 在一年中添加天数 - Java