如何在不使用IF的情况下比较两个值。我知道可以使用= ?
或类似的东西。例如,让我们比较两个阵列列表c
和t
的大小。对于这一点,我想用类似的代码:在Java中使用'=?'比较两个值
boolean answ = ? c.size() = t.size();
如何在不使用IF的情况下比较两个值。我知道可以使用= ?
或类似的东西。例如,让我们比较两个阵列列表c
和t
的大小。对于这一点,我想用类似的代码:在Java中使用'=?'比较两个值
boolean answ = ? c.size() = t.size();
尝试boolean answ = c.size() == t.size();
三元运算符,?
,用于获取2个的一个答案,你不需要它,如果你只需要一个布尔答案。
要比较通常使用==
而不是=
的值,除非您要比较非原始值(如果您在类中正确覆盖它,则必须使用equals
方法)。
一个单一的=
是用于作曲,而不是测试相等。
对'String'的引用在这里有误解:实际上,您希望对所有*非原始值使用equals()。 'String'绝不是特别的。 – alf 2012-01-02 11:45:43
这应该工作:
boolean answ = c.size() == t.size();
什么你可能还记得是短if else结构:
return c.size() == t.size() ? true : false;
后者不会编译。 – alf 2012-01-02 17:50:41
啊当然,回报一定要先......谢谢! – WarrenFaith 2012-01-03 03:44:42
如果你需要使用?你必须写:
boolean answ = (c.size() == t.size() ? true : false);
但是这比写
boolean answ = (c.size() == t.size() );
你的意思是三元运算符长多少?
result = expr1 ? expr2 : expr3;
如果expr1
true那么result
分配的expr2
的结果,expr3
否则结果。所以:
boolean answ = c.size() == t.size() ? true : false;
这就是所谓的三元或条件运算符:
该代码将比较不使用if
:
boolean answ s= (c.size()==t.size()) ? true : false;
它正在使用,它只是写得很快而且开销也在那里。为什么使用三元运算符,如果它没有运行? – WarrenFaith 2012-01-02 14:23:29
为什么你想避免'if'?它可能揭示出你真正想要达到的目标......这仅仅是为了分配的目的吗? [这确实是使用trinary操作符的一个很好的理由...] – amit 2012-01-02 11:38:19
并且比较具体到底是什么? – fge 2012-01-02 11:38:47
boolean answ =(c.size()== t.size()); – dkulkarni 2012-01-02 11:41:14