返回声明的布尔值?

时间:2015-08-25 21:56:10

标签: java syntax boolean

做一些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快捷方式吗?

4 个答案:

答案 0 :(得分:1)

boolean方法的返回类型为true,这意味着它可以返回任何布尔文字falsetalking)或变量,即使是作为参数(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的值 如果talkingtrue,则返回true,表示存在问题 如果talkingfalse,则返回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值。它可以是truefalse。您的方法返回boolean,因此可以返回truefalsereturn 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;
}