我最近得到了课程作业,因为一些愚蠢的原因而获得了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{ }
}
我们的代码确实完全相同..
答案 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)
没有区别。
你可以两种方式做到。
答案 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)
如果{}
,请不要在技术上有所不同,但使用其他方法是不错的做法