Tag: if语句

Java if-if-else行为

我在我的代码中写了一个简单的if/else ,工作正常。 后来我在第一个下面添加了另一个级别,并且被它的行为困惑了。 这是重新创建情况的非常简单的代码: public static void main(String[] args) { boolean a = true; boolean b = false; if (a) if (b) System.out.println(“a=true, b=true”); else System.out.println(“a=false”); } 它返回“ a=false ”,即使a是真的! 事实certificate, else与最近的if绑定,虽然我没有发现它在任何地方都有记录,并且eclipse没有将不匹配的缩进级别突出显示为错误(尽管它在格式化文件时确实纠正了它)。 使用大括号的一个非常非常强大的论据! else / if记录的绑定顺序在哪里? 作为挑战, 是否有一种方法可以使上面的代码执行缩进使您期望的内容而不添加大括号?

这两个条件的区别?

对不起,如果我的问题很愚蠢或无关紧要。 但我只是想知道在这两种情况下会发生什么。 public class Test { public static void main(String[] args) { String str=”test”; if(str.equals(“test”)){ System.out.println(“After”); } if(“test”.equals(str)){ System.out.println(“Before”); } } } 两者都只给出相同的结果。 但我知道有一些原因。我不知道。 这两个条件有什么区别?

在if语句之外使用变量

我不完全确定这是否可以在Java中使用,但是我如何使用在声明它的if语句之外的if语句中声明的字符串? 我真的很感激,如果有人能帮助我解决这个问题,我已经尝试了几个小时,似乎无法得到任何工作。

case-statement或if-statement效率透视

可能重复: “else if”是否比“switch()case”更快? Java中if / else与switch语句的相对性能差异是什么? 我知道case语句可以用跳转表来实现。 这是否比if语句更有效? 这只是微观优化应该避免吗?

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

请考虑以下未格式化的嵌套if-else Java代码 if (condition 1) if (condition 2) action 1; else action 2; 我的问题是:根据Java语言规范,如果else分支适用该怎么办? 通过手工重新格式化和添加括号,这两个中的哪一个是正确的? 第1块: if (condition 1) { if (condition 2) { action 1; } else action 2; } } 第2块: if (condition 1) { if (condition 2) { action 1; } } else { action 2; }

如何删除大的if-else-if链

可能重复: Java中if语句的长列表 我的任务是处理一些代码,并且有一个巨大的if-else-if链(100+ else-ifs)检查字符串。 有什么好的技术可以更新这段代码,以确定if-else-if链可以缩小到更易于管理的地方。 链看起来像这样: if(name.equals(“abc”)){ do something } else if(name.equals(“xyz”)){ do something different } else if(name.equals(“mno”)){ do something different } …… ….. else{ error }

if语句之外的变量访问

我试图在java中的if语句之外访问变量。 变量是axeMinDmg 。 这是我有,但得到一个错误。 我想要minDmg = axeMinDmg 。 谢谢 @SuppressWarnings(“unused”) public static void main(String[] args) throws IOException { int count = 1; // start both with 1 point int goodTotal = 50; int monTotal = 50; // set amount of money that Goodman has int moneyAmt = 10; // setting array for bat int [] […]

为什么Java没有看到整数是平等的?

我有应该是相等的整数(我通过输出validation它)。 但在我的if条件下,Java没有看到这些变量具有相同的值。 我有以下代码: if (pay[0]==point[0] && pay[1]==point[1]) { game.log.fine(“>>>>>> the same”); } else { game.log.fine(“>>>>>> different”); } game.log.fine(“Compare:” + pay[0] + “,” + pay[1] + ” -> ” + point[0] + “,” + point[1]); 它产生以下输出: FINE: >>>>>> different FINE: Compare:: 60,145 -> 60,145 可能我必须补充point就是这样定义: Integer[] point = new Integer[2]; 并从循环构造函数中获取: for (Integer[] pay : payoffs2exchanges.keySet()) […]