Java入门系列教程#6 逻辑语句
本文最后更新于 999 天前,其中的信息可能已经有所发展或是发生改变。

上一期学习了运算符与数据转换,本期继续学习常用的几种逻辑语句。

学习目标

  • 掌握所有常用逻辑语句的使用

本节内容比较简单,因此不做过多解释,读懂代码会用就好。

逻辑语句

if

public static void main(String[] args) {
    int a = 9;
    int b = 12;
    if (a > b) {
        System.out.println("a > b");
    }else {
        System.out.println("a <= b");
    }
}
// 运行结果
// a > b

if后的小括号内需要传入一个布尔值,上一课我们学习了运算符,关系运算符返回的是布尔值,因此小括号内可以直接用一些运算符直接表示条件。

大括号内就是条件成立执行的代码,在大括号结尾可以继续套上else { … },代表条件不成立时执行的代码。

if (条件) { … } else { … } 和 if (条件) { … } else if (条件) { … } 这两种写法都可以。else if 可以无限接在上一个if的末尾。

for

for (int i = 0; i < 9; i++) {
    System.out.println("i的值为" + i);
}
System.out.println("for循环结束");

// 运行结果

// i的值为0
// i的值为1
// i的值为2
// i的值为3
// i的值为4
// i的值为5
// i的值为6
// i的值为7
// i的值为8
// for循环结束

for的括号内需要传入三个语句,并且用分号隔开。

第一个是初始化变量,既可以用声明变量的表达式声明一个,也可以直接使用已经存在的int变量。

第二个是循环条件,也就是说,当这个条件成立时,会执行代码块内的代码直到条件不成立。

第三个是每次执行完代码块后执行的代码,这里的i++意思就是执行完一次循环后让i自增1,这样才能保证循环可以一直到不满足条件跳出。

while

int whileCount = 6;
while (whileCount > 0) {
    whileCount --;
}
System.out.println("此时whileCount的值为" + whileCount);
// 运行结果
// 此时whileCount的值为0

while比for更简单一些,它不需要初始化变量。

从代码与运行结果可以发现,当while内的条件成立时,就会执行代码块内的代码直到条件不成立。

while与for的最大区别就是while没有初始化变量,因此while更适用于未知循环次数的循环。

switch

int switchCase = 1;
switch (switchCase) {
    case 1:
        System.out.println("选择 1");
        break;
    case 2:
        System.out.println("选择 2");
        break;
    case 3:
        System.out.println("选择 3");
        break;
}
// 运行结果 
// 选择 1

switch就是对小括号内的值进行选择,如上所示。

选择判断的值是switchCase,那么它就会在下面的case中寻找符合它的值并执行相应部分的代码,等同于if (switchCase == 1)条件成立时执行if代码块内的代码。

switch中break的作用

你可能已经注意到了,在每一个case之前都有一个break,他有什么用呢?

现在我们试着去掉break来看看效果。

int switchCase = 1;
switch (switchCase) {
    case 1:
        System.out.println("选择 1");
    case 2:
        System.out.println("选择 2");
        break;
    case 3:
        System.out.println("选择 3");
        break;
}
// 运行结果
// 选择 1
// 选择 2

现在在case2中没有了break,我们发现同时输出了1和2。

这是因为,当switch寻找到对应的case时,就会自动跳转到符合条件的case并且从那里开始执行下面的代码。若没有break,相当于没有阻止代码的进行,因此就直接从case1部分继续运行到下一个case2部分,由于case2结尾有break,因此switch在case2的结尾跳出了。

do while

int doWhileCount = 5;
do {
    doWhileCount --;
    System.out.println("do被执行了一次");
}while (doWhileCount < 0);
// 运行结果
// do被执行了一次

观察一下上面的代码,发现doWhileCount < 0并不成立,但是do内的代码依然被执行了一次。

do while和while的最大区别就是do while无论条件成不成立,都会执行一次do内的代码。

跳转关键字

在上面的switch学习中我们了解了break的使用,下面我们再来深入一下,再认识一下continue的作用。

break

for (int i=0;i<9;i++) {
    if (i == 5) {
        System.out.println("i等于5 执行break跳出循环");
        break;
    }
    System.out.println("i的值为" + i);
}
System.out.println("已跳出循环");

// 运行结果
// i的值为0
// i的值为1
// i的值为2
// i的值为3
// i的值为4
// i等于5 执行break跳出循环
// 已跳出循环

很明显看出,break可以跳出分支结构(循环、switch等)。

continue

顾名思义,就是不跳出循环继续运行,下面再次举一个例子来看一看。

for (int i=0;i<9;i++) {
    if (i == 5) {
        System.out.println("i等于5 不输出 i的值为5");
        continue;
    }
    System.out.println("i的值为" + i);
}
System.out.println("已跳出循环");

现在,我们把上面的break改成了continue。

观察一下发现:当i == 5成立时执行if内的代码,当遇到了continue,就自动放弃了后面的代码,进入了下一次循环,也就是当i等于6时的那一次循环。

因此,continue不会跳出分支,而是直接进行下一次循环。

课后练习

  1. 成绩等级评定:给定一个浮点型变量作为成绩,用if语句判断,大于60及格,大于80优秀,并输出结果,若80>60则优先输出”优秀”。
  2. 打印一个等腰直角三角形,图像符号任意。
  3. 定义一个新方法,输入三个整数变量abc,利用余弦定理公式,判断角C是否是直角,并返回布尔结果。(cos B = a^2 + c^2 – b^2 / 2ac,cos 90° = 0)
  4. 用for写一个循环,并且将它改写成while,要求两种形式都输出正确结果。
  5. break和continue的区别是什么?
  6. 简述for和while的执行过程。

未经允许禁止转载本站内容,经允许转载后请严格遵守CC-BY-NC-ND知识共享协议4.0,代码部分则采用GPL v3.0协议
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇