java - 我可以将 return 语句放在 switch 语句中吗?

标签 java methods switch-statement return

我可以使用 switch 语句来决定返回什么吗?例如,我想根据我的随机生成器得出的结果返回一些不同的东西。 Eclipse 给我一个错误,要我将 return 语句放在 switch 之外。

我的代码:

public String wordBank() { //Error here saying: "This method must return a type of string"
    String[] wordsShapes = new String[10];
    wordsShapes[1] = "square";
    wordsShapes[2] = "circle";
    wordsShapes[3] = "cone";
    wordsShapes[4] = "prisim";
    wordsShapes[5] = "cube";
    wordsShapes[6] = "cylinder";
    wordsShapes[7] = "triangle";
    wordsShapes[8] = "star";
    wordsShapes[9] = "moon";
    wordsShapes[10] = "paralellogram";

    Random rand = new Random();
    int i = rand.nextInt(11);

    if (i == 0) {
        i = rand.nextInt(11);
    }

    switch (i) {
    case 1:
        return wordsShapes[1].toString();
    case 2:
        return wordsShapes[2].toString();
    case 3:
        return wordsShapes[3].toString();
    case 4:
        return wordsShapes[4].toString();
    case 5:
        return wordsShapes[5].toString();
    case 6:
        return wordsShapes[6].toString();
    case 7:
        return wordsShapes[7].toString();
    case 8:
        return wordsShapes[8].toString();
    case 9:
        return wordsShapes[9].toString();
    case 10:
        return wordsShapes[10].toString();
    }
}

最佳答案

抱歉,但既然如此,为什么不直接做:

return wordsShapes[i].toString();

这样你就可以避免开关和所有的东西。

希望对你有帮助,

关于java - 我可以将 return 语句放在 switch 语句中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17961047/

相关文章:

Python字典切换通过其他函数而不仅仅是调用的函数

javascript - 在 switch 语句中使用 ViewBag

java - 如何在没有 @Override 注释的情况下找到所有覆盖父类(super class)/接口(interface)方法的方法?

java - 如何在循环链表中插入字符串(我想检查循环链表中的重复单词)?

java - Servlet 3.0 异步超时

java - 在java程序中正确使用多维数组

c# - 将方法指针从 C# 传递到 Delphi DLL

video - 将网站背景视频切换为图像

java - 在单独的上下文中运行类

java - RequestMethod.DELETE 不起作用