如何将以下2行if-statments写入一行代码:
if (s1.length() == 0)
return "hello";
if (s2.length() == 0)
return "goodbye";
我想学习如何用三元运算符格式编写它:
if ? then : else
但是我的例子PLUS中没有“else”我有两个“if”语句,所以这让我很困惑。
是否可以将这两个if语句组合成一行代码?
答案 0 :(得分:9)
但我没有"否则"在我的例子中
为了用条件运算符写这个,我们需要" else"最后的案例。所以:
if (s1.length() == 0)
return "hello";
if (s2.length() == 0)
return "goodbye";
return "neither";
如果没有该最终值,则不能使用条件运算符来编写它。
使用最终值,您可以,但我不建议从可读性或维护角度推荐它:
return s1.length() == 0 ? "hello" : s2.length() == 0 ? "goodbye" : "neither";
你可以看到"然后"和"否则"一个if/else
几乎直接映射到条件的第二和第三个操作数。
有趣的事实:它恰当地称为conditional operator。它通常被称为"三元运算符,"但实际上它只是 一个 三元运算符(一个接受三个操作数的运算符,就像二元运算符接受两个操作数而一元运算符接受一个操作数)。它是Java目前唯一的三元运营商,但从理论上讲,总有一天它可能会有其他人......
答案 1 :(得分:1)
可能像
$datetime1 = new DateTime($row100wed["intime"]);
$datetime2 = new DateTime($c_time);
$interval = $datetime2->diff($datetime1);
$interval->format('%d')." Days ".$interval->format('%h')." Hours ".$interval->format('%i')." Minutes";
$resu = 24*$interval->format('%d') + $interval->format('%h') . " Hours " . $interval->format('%i') . " Minutes";
echo $resu;
if(($resu>='0 Hours 8 Minutes')&&($resu<'0 Hours 18 Minutes')) {
echo "true";
}
else if($resu<'0 Hours 8 Minutes')
{
echo "false";
}