在java中切换语句并继续

时间:2013-05-01 11:48:57

标签: java

大家好我有一个非常简单的问题:

我有以下代码:

for (...) 
{ 
   if(something == null)
   {
     switch(ENUM_TYPE) 
     {
      case something:
         something == new Something();
         break;
      case other:
       continue;
      }
      some instructions that i don't want to execute when other.
    }
}

这是一个好的设计吗?

3 个答案:

答案 0 :(得分:1)

switch语句的基本思想是有多种选择可供选择。

在你的例子中,你只有一个,所以使用switch语句并没有多大意义。

所以从你的例子来看,如果我正确地读它,我会做类似下面的陈述,这些陈述更清晰,更容易阅读。使用continue的问题在于它是一种跳转,结果源代码有点令人困惑。

for (...) {
  if (something1 && something != other) {
    if (something == something) {
        // do the something stuff
    }
    // do the stuff that is for everything else
  }
}

switch语句有一些限制,以及各种情况替代方案的外观会降低switch语句的灵活性。

请参阅有关switch语句的讨论以及如何将其限制为某些内置类型和枚举。 Java Switch Statement

答案 1 :(得分:0)

你可以尝试在案例中编写你的“Some Instuctions”代码:因此,当案件是:只有时,它将被执行。

答案 2 :(得分:0)

不,原因很简单,你违反了“做一件事”。原理。代替:

for (...) 
{ 
   if(something == null)
   {
     switch(ENUM_TYPE) 
     {
      case something://I think you have variable overloading here.
         methodForSomethingCase();
         additionalInstructions();
         break;
      case other:
         //essentially do nothing
         break;
      default:
         additionalInstructions(); 
     }
  }
}

通过这种方式,您可以确保您的附加指令与此方法中需要发生的操作正交:这是在每次迭代之间切换可能的项目。这使测试更容易。它可以更轻松地更改您的其他说明,或者在每种情况下会发生什么。它使您的代码更易于阅读。当你还有一些其他指令时,它也很简单。

请记住:每种方法都应该只做一件事。