如果{..和其他{if(否则)

时间:2014-03-04 17:21:32

标签: java if-statement

我最近得到了课程作业,因为一些愚蠢的原因而获得了0分,我在班上检查过某人,这是我的代码:

 public static String take(String s, int n) {

  while(true){
      if(s.equals("")){
          return "";
      } else if(s.length() < n){
          return s;
      } else { 
          return s.substring(0,n);    
      }

但他的是

public static String take(String s, int n) {
    while (true) {
        if (s.equals("")) {
            return "";
        } else {
            if (s.length() < n) {
                return s;
            } else {
                return s.substring(0, n);
            }
        }
    }
}

我想知道

是否存在差异
    else if{...}

    else{
          if{ }
    }

我们的代码确实完全相同..

7 个答案:

答案 0 :(得分:4)

不,没有区别。你可以这样做。

答案 1 :(得分:2)

技术上没有区别,这是代码风格的问题。

但请记住,如果有多个else if,您最终可能会出现凌乱的缩进:

if(test1) {
    ...
} else {
    if(test2) {
        ...
    } else {
        if(test3) {
            ...
        } else {
            if(test4) {
            ...
            }
        }
    }
}

而不是清洁工:

if(test1) {
    ...
} else if(test2) {
    ...
} else if(test3) {
    ...
} else if(test4) {
    ...
}

答案 2 :(得分:1)

不,它的工作没有任何区别。但是,您可以连续多个else if块,但不能连续多个else块,其中包含if

答案 3 :(得分:0)

没有区别。

你可以两种方式做到。

enter image description here

答案 4 :(得分:0)

在大多数情况下,我鼓励人们尽可能使用牙套; 从不使用:

 if(x) y = z;

总是使用:

 if(x) {
    y = z;
 }

然而,“if else”是一个坚实的习惯用语,所以它是该规则的例外:

 if(x) {
      ...
 } else if(y) {
      ...
 } else {
      ...
 } 

...格式良好的代码,相当于:

 if(x) {
      ...
 } else {
    if(y) {
      ...
    } else {
      ...
    } 
 }

......这更麻烦,并且有可能改变逻辑的错位括号。

答案 5 :(得分:0)

else if在Java中没有特殊含义。它是else部分,其语句是if语句;并且必须考虑到,由于else部分不是用大括号括起来的块,else部分只有一个语句。所以你可以像这样缩进你的例子,以便更清楚地看到它:

  if(s.equals("")){
      return "";
  } else 
      if(s.length() < n){
          return s;
      } else { 
          return s.substring(0,n);    
      }

而另一个例子看起来像

    if (s.equals("")) {
        return "";
    } else {
        if (s.length() < n) {          // the second if statement starts here
            return s;
        } else {
            return s.substring(0, n);
        }                              // the second if statement ends here
    }

除了围绕第二个if语句的额外括号外,它们是相同的。

但是尽管else if并不特别,正如其他人所说的那样,程序员在使用它时遵循不同的缩进和{ }约定是很常见的,特别是因为有时可能会有很多链接在一起。 (事实上​​,在像Perl这样的语言中,else if之后没有大括号的else,或者每个end if末尾需要if的Ada,这个成语是必不可少的,他们添加了一个特殊的关键字elsif,以允许程序员使用它。)

答案 6 :(得分:0)

如果{}

,请不要在技术上有所不同,但使用其他方法是不错的做法