做一些Codingbat练习,<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html b:version='2' class='v2' expr:dir='data:blog.languageDirection' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
<head>
<b:include data='blog' name='all-head-content'/>
<link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,300italic,700' rel='stylesheet' type='text/css'/>
<link href='http://fonts.googleapis.com/css?family=Lora:400,400italic,700,700italic' rel='stylesheet' type='text/css'/>
<link href='https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css' rel='stylesheet'/>
<title><data:blog.pageTitle/></title>
<div id='option-panel' style='display:none!important'>
<setting id='post_thumbnail'>text1</setting>
<setting id='search_icon'>text2</setting>
</div>
</head>
<body>
</body>
</html>
如何工作?
该代码是以下练习的有效解决方案:
我们有一只吵闹的鹦鹉。 &#34;小时&#34;参数是当前小时时间,范围为0..23。如果鹦鹉在说话,小时在7点之前或者在20点之后,我们就会遇到麻烦。如果我们遇到麻烦,请回复。 示例:
function OrderSizeAndColorByMerging($cablesizes, $productarray) { foreach ($cablesizes as $id => $size): foreach ($productarray as $color=>$array): if (array_key_exists($id, $array)) { unset($productarray[$color][$id]); $productarray[$color][$id]=$size; } endforeach; endforeach; return $productarray; }
解决方案:
return talking;
parrotTrouble(true, 6) → true
parrotTrouble(true, 7) → false
parrotTrouble(false, 6) → false
的工作原理和原因是什么?这是Java快捷方式吗?
答案 0 :(得分:1)
boolean
方法的返回类型为true
,这意味着它可以返回任何布尔文字(false
或talking
)或变量,即使是作为参数(public boolean parrotTrouble(boolean talking, int hour) {
if (hour < 7 || hour > 20) {
if (talking) {
return true;
} else {
return false;
}
} else
return false;
}
)传入的那个。
逻辑等同于这个(更冗长的)版本,它只使用布尔文字作为返回值:
if (talking)
正如您所看到的,检查{{1}}是多余的,因为您也可以自己返回变量。
答案 1 :(得分:0)
如果是白天,请返回false
,因为没有问题。
如果是夜间,请返回talking
的值
如果talking
为true
,则返回true
,表示存在问题
如果talking
为false
,则返回false
,表示没有问题。
更好(?)更简单的实现方式是:
public static boolean parrotTrouble(boolean talking, int hour) {
return (talking && (hour < 7 || hour > 20));
}
思想:我可以说“20后”意味着hour >= 20
,因为在20:01,它是“20后”。只有在晚上8点的确切时间=
不正确,你需要分钟才能知道。
答案 2 :(得分:0)
talking
不是“字”,而是boolean
值。它可以是true
或false
。您的方法返回boolean
,因此可以返回true
或false
。 return talking;
行仅表示“返回传入的值”。换句话说,如果传递true
,则此方法会返回true
,如果在上午7点到晚上8点之间传递false
,则会返回false
。
答案 3 :(得分:0)
你没有说出决定回报的谈话,我建议这段代码:
public static boolean parrotTrouble(boolean talking, int hour)
{
if (((hour < 7 || hour > 20) && talking) || (hour >= 7 && hour <= 20 && !talking))
return true;
else
return false;
}