草庐IT

java - if-else 和 switch 语句的替代方案

我在Java中有以下代码:publicvoiddoSomething(inti){if(i==12){//ordershouldbesameup();left();stop();}if(i==304){//ordershouldbesameright();up();stop();}if(i==962){//ordershouldbesamedown();left();up();stop();}}//similarcodecanbedoneusingswitchcasestatements.//allthefunctioncanhaveanyfunctionalityandmightno

java - 没有大括号的嵌套 if-else 行为

考虑以下未格式化的嵌套if-elseJava代码if(condition1)if(condition2)action1;elseaction2;我的问题是:根据Java语言规范,else分支适用于什么?通过手动重新格式化和添加大括号,这两个哪个是正确的?block1:if(condition1){if(condition2){action1;}elseaction2;}}第2部分:if(condition1){if(condition2){action1;}}else{action2;} 最佳答案 来自JavaLanguageSpe

java - 多个 If-else 或枚举 - 哪个更可取,为什么?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8个月前。Improvethisquestion原代码如下:publicclassFruitGrower{publicvoidgrowAFruit(Stringtype){if("wtrmln".equals(type)){//dowatermelongrowingstuff}elseif("ppl".equals(type)){//doapplegrowingstuff}elseif("pnppl".equals(type)){//

java - 我应该使用 guard 子句,并尽量避免 else 子句吗?

我读过(例如从MartinFowler那里)我们应该在OOP的(短)方法中使用保护子句而不是单一返回。我还读过(从某个我不记得的地方)应该尽可能避免使用else子句。但是我的同事(我在一个只有3个人的小团队工作)强制我不要在一个方法中使用多个return,并且尽可能使用else子句,即使else中只有一个注释行block。这让我很难遵循他们的编码风格,因为例如,我无法在一个屏幕上查看一个方法的所有代码。而且我写代码的时候,必须先写guardclause,然后尝试把它转换成没有multiplereturn的形式。我错了吗?我应该怎么办? 最佳答案

java - if(null check)-else vs try catch(NullPointerException) 哪个效率更高?

下面三个函数哪个效率更高;publicStringgetmConnectedDeviceName1(){if(null!=mServerDevice){returnmServerDevice.getName();}else{returnnull;}}publicStringgetmConnectedDeviceName2(){returnmServerDevice==null?null:mServerDevice.getName();}publicStringgetmConnectedDeviceName3(){try{returnmServerDevice.getName();}ca

java - 为什么 Java 7 中 String 的 switch 语句比 if else 快?

在Java7中,string对象可以在switch语句的表达式中。有人可以从officialdocumentation解释以下声明吗??TheJavacompilergeneratesgenerallymoreefficientbytecodefromswitchstatementsthatuseStringobjectsthanfromchainedif-then-elsestatements. 最佳答案 Java代码有一个类的两个版本,例如使用if-then-else:publicclassIfThenElseClass{pub

java - FreeMarker 模板中的 if-else

FreeMarker模板支持具有以下语法的if语句It'shot.我查看了文档,但找不到任何对if-else语句的支持。当然,我可以通过以下方式获得相同的结果:It'shot.It'snothot.FreeMarker是否支持if-else? 最佳答案 是的,你可以这样写:it'shotit'snot如果你正在做大量的freemarker,我真的可以推荐IntelliJIDEA8,它的freemarker支持真的很有帮助...... 关于java-FreeMarker模板中的if-els

python - Python 的 Vim 语法高亮 'else:'

我对Vim中默认的python语法高亮感到恼火。它没有正确突出显示else:语句。如果我在else和冒号:之间有一些空白,Vim只会突出显示else语句,所以else:可以工作,但是else:没有。它必须很容易修复。我正在使用Vim7.2 最佳答案 我的vimrc文件中有以下语句。这使得else:被标记为一个词。删除其他内容后:语法突出显示效果很好。setiskeyword+=: 关于python-Python的Vim语法高亮'else:',我们在StackOverflow上找到一个类似

python - 函数和 if - else 在 python 中。多个条件。代码学院

写一个函数,shut_down,它接受一个参数(您可以使用任何您喜欢的参数;在这种情况下,我们将使用s作为字符串)。shut_down函数应该返回"Shuttingdown..."当它得到"Yes","yes",或"YES"作为参数,和"Shutdownaborted!"当它得到"No","no",或"NO".如果它得到的不是这些输入,函数应该返回"Sorry,Ididn'tunderstandyou."。到目前为止我写的代码如下。它会出错,例如给出"No"作为参数,它不返回"Shutdownaborted!"正如预期的那样。defshut_down(s):ifs=="Yes"or"y

Python - 一行 if-elif-else 语句

我试图将if-elif-else语句压缩成一行。我试过:a==1?print"one":a==2?print"two":print"none"但是我遇到了语法错误。我也试过:print"one"ifa==1elseprint"two"ifa==2elseprint"none"但我也遇到语法错误。我可以做些什么来使这些答案中的任何一个更好或创建一个有效的答案? 最佳答案 尝试:print{1:'one',2:'two'}.get(a,'none') 关于Python-一行if-elif-e