JAVA精灵 第四章 理解Mr.布尔

我先问大家三个问题:
1、我是否很帅?
2、我是否很聪明?
3、我是否很幽默?

如果你回答全部为“是”,那说明你很有眼光,看待问题很客观,很有培养的潜力;如果你回答全部为“否”,那说明你这个人真的很虚伪,居然敢泯灭良心说谎话,最好自己面壁思过三天!

在Java世界,有一种数据类型叫“布尔”型,这种类型只有两个可能的值,要不“是”,要不“否”。我们上一章的代码中,就用到了布尔类型。

    protected boolean alarm;  //是否具备闹钟功能

可以看到,我们使用boolean来声明这个变量是一个布尔类型的变量,所以alarm的取值只能是true或者false。当然,也可以是一个运算结果为true或者false的表达式。例如“5>3”这个表达式运算结果是true,“1<0”的运算结果是false。

布尔类型在Java当中使用非常广泛,尤其是在进行条件控制的时候。

我们下面先放松一下,看几个爆笑的小朋友造句。

老师:请用“先……再……”造句。小朋友回答:“先生,再见!”
老师:请用“如果……那么……”造句,并先示范一下“如果我废寝忘食、日夜读书,那么我的成绩一定会好。”小朋友回答:“如果我废寝忘食、日夜读书,那么我宁愿去死。”
老师:请用“一……便……”造句,小朋友回答:“哥哥一吃完饭就大便。”
老师:请用“不断”造句,小朋友回答:“爸爸经常对我说,你敢不做作业,我打断你的腿。”
老师:请用“要么……要么……”造句,小朋友回答:“西瓜五毛钱一斤,要么要么?”

小朋友的天真烂漫很容易让人捧腹大笑,而我们上面提到了一些造句例子,在Java当中其实对应着一些常用的流程,我们先来看一下有哪些流程:

1、顺序流程。这是我们最常见的一种流程,就是“先”做完一件事,“再”接着做另一件事。我们写Java代码都是从上往下写的,这就是一种顺序流程。

2、判断流程。主要有两种情况,一是“如果”满足条件,则执行,“否则”不执行;二是“如果”满足条件,则执行A,“否则”执行B,当然,还可以层层深入来判断。

3、循环流程。就是“不断”循环做某一件事,由于程序总有个结束的时候,所以通常情况下,我们都会在循环的前后或者循环体内部设置某些退出条件,否则就是一个“死循环”。

我们再次来看一下我们上一章的代码:

        if(hour>=7&&hour<=18){
            return "白天";
        }else{
            return "黑夜";
        }

相信大家阅读这段代码没有太大的困难,这是一个典型的判断流程。if……else……语句称为条件语句,if后面的“(hour>=7&&hour<=18)”称为判断条件,它的结果是一个布尔型(true或false),当这个条件成立的时候(结果为true时)就返回“白天”。这里的“>=”和“<=”不用解释,就跟我们数学上的意义是一样的,要说明一下的是“&&”,这个符号是“并且”的意思,我们称之为“逻辑运算符”。Java中共有三个逻辑运算符,分别是“&&”(并且)、“||”(或者)和“!”(非、不),例如:

hour<7||hour>18       //小时数小于7或者大于18
hour!=12     //小时数不等于12
!(hour<12)   //非“小时数小于12”,也就是小时数大于等于12

注意:“!”后面可以跟“=”符号或运算结果为true或者false的表达式。

下面我们来看一个循环语句:

int i=0;
while(i<10){
      System.out.println(i);
      i=i+1;
}

这是最为典型的循环语句。最初的时候,i的值为0,然后检查i是否满足条件(即i<10为true),如果满足条件,则进入循环体{}的内部,输出i,然后执行i+1,再继续判断是否满足(i<10),如此往复。当输出完9的时候,再执行i+1,这时候i的值变为10,这时候再检查条件将不满足,于是循环结束。

Paste_Image.png

上面这段代码我们还可以写成这样子:

for(int i=0;i<10;i++){
    System.out.println(i);
}

for括号里有三个部分,分别是:循环执行前的初始状态、循环体执行的条件、循环体执行完之后执行的语句。大家可以跟上面的while一一进行对照,可以更好理解for括号里面的内容。这三个部分其实是可以省略某些部分的,但两个“;”号则必须保留。例如你可以这样写,也是一样的:

int i=0;
for(;i<10;i++){
    System.out.println(i);
}

这里提一下“i++”,其实这跟i=i+1是完全一样的,只是一种偷懒的写法。除了“i++”,还有“i--”,相当于i=i-1。此外,还有一种是将“++”、“--”放在i前面的,即“++i”、“--i”,有什么不同?

如果你把i++或者++i单独放在一行,或者像上面这个例子最为单独运行的语句,那么二者其实结果是一样的。但是,我们看一下这两个例子:

例子1:

int i=0;
System.out.println(i++); //先输出i,然后再将i增加1,所以输出0

例子2:

int i=0;
System.out.println(++i); //先将i增加1,然后再输出i,所以输出1

“i++”是不管三七二十一,先用了再说,然后再递增,是一个急性子。而“++i”则是谨慎派,它先递增完之后,再慢慢去使用。

[原创作品,未经授权请勿转载]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,560评论 18 399
  • FreeCodeCamp - Basic JavaScript 写在前面: 我曾经在进谷前刷过这一套题,不过当时只...
    付林恒阅读 16,424评论 5 28
  • 中国教育谁之过 这几年,我们常常看到这样的新闻13岁小孩给老师泼硫酸到现在的12岁男孩杀8岁女孩我们不禁要问...
    沉默须臾阅读 248评论 5 1
  • 文/呢喃 你说 你是沙漠 千年的风霜 吹散了你的秀发 蚀骨的流言 风化了你的躯干 我只想说 有沙漠 就会有绿洲 它...
    米粒说阅读 168评论 0 0
  • 如果再回到从前, 我一定不让感情越过了界限! 如果再回到从前, 我一定不会放任情感! 如果再回到从前, 我一定陪你...
    自悟阅读 127评论 0 1