当前位置: 首页 > 知识库问答 >
问题:

如何在数组比较中使用switch?[副本]

徐翔
2023-03-14

我想将数组长度与一些int值进行比较。我可以用if(如果)if(如果)else(如果),但如何用switch(切换),因为switch(切换)很快,我想在我的项目中使用它

switch (array.length) {
    case array.length <= 11: // how to do this 
        break;
    default:
        break;
}

如果有,我可以这样做:

if (array.length <= 5) { 
    //my is code here 
}
else if (array.length <= 15) {
    //my is code here 
}
else if (array.length <= 10) {
    //my is code here 
}

共有3个答案

谢哲瀚
2023-03-14

您不能使用开关执行此操作(根据您的示例)。因为case的值是常量表达式(case*value*)。

段弘和
2023-03-14

开关与if(…)不同{ ... } else{…} 。您只能在案例中使用。您必须这样做:

int length = array.length;
switch (length) {
    case 0:
    case 1:
    case 2:
    [...]
    case 11:
        // your code here
        break;
    //other cases here
}

请注意缺少的break语句,它们非常重要。我推荐本教程了解更多详细信息。

林俭
2023-03-14

你不能。开关只能测试确切的值。

你可以做:

switch(array.length) {
case 0: case 1: case 2: case 3:
case 4: case 5: case 6: case 7:
case 8: case 9: case 10: case 11:
    // do stuff
    break;
default:
    break;
}

但你为什么要这样做?是什么让你觉得它更快?

 类似资料:
  • 当我试图比较两个int数组时,即使它们完全相同,中的代码仍然没有执行。这是为什么?

  • 问题内容: 我想比较两个数组…理想地,有效地比较。没有什么幻想,只要它们是相同的,如果不相同。毫不奇怪,比较运算符似乎不起作用。 每个数组都可以使用JSON编码,但是有没有一种更快或更“更好”的方法来简单地比较数组而不必遍历每个值? 问题答案: 要比较数组,请遍历它们并比较每个值: 比较数组: 用法: 您可能会说“ 但是比较字符串要快得多-没有循环… ”,那么,您应该注意存在ARE循环。第一个递归

  • 我试着比较两个物体,两个物体在每个区域上都有完全相同的值。 请注意,它们都打印相同的结果。 然而,当我比较每个对象中的字段时,和使用。等于时,返回值为false。 以下是比较数值的方法示例: 是否有其他方法可以比较和?所有其他字段在相同的equals方法中返回true(如预期)。 数字2={10,11}和字符串2={7c2cfc4e-5805-45ad-8687-4f2412a92e1d,d91b

  • 我是java编程新手,很难弄清楚这一点。 这是我的代码: 有没有办法将其转换为switch-case语句?

  • 问题内容: 我不知道为什么所有人都打印错误。 当我运行“ java ByteArray”时,答案是“ false false false false”。 我认为a []等于b [],但是JVM告诉我我错了,为什么?? 问题答案: 如果要比较包含基本类型值(例如字节)的数组的实际内容,请使用此选项。 使用了包含对象数组的比较。

  • 我想比较两个物体。然而,当我运行它时,它告诉我它们不匹配,尽管它们匹配。请让我知道我做错了什么,谢谢。下面是我的代码: