文章目录
逻辑控制
本文 将学习到 选择语句 和 循环语句,最后 还有输入输出 语句。
if 语句
如果 满足 if 中的条件 那么 执行 if 语句中的内容, 如果不 满足 if 满足 else if 语句 中的条件 ,那么我们 执行 else if 中 的内容 , 最后 if 和 else if 都不满足,就会执行 else 语句 中 的 内容。
语法:
if(布尔表达式) { }else if(布尔表达式){ }else { }
注意 : 这里我们 if 语句 中的 条件, 要是 布尔表达式,而不像 c 中的 非零 表示 真 ,0表示假、
而是 布尔表达式结果为true,执行if中的语句,否则不执行。
演示:
下面 就 来 做 几道 练习 题 ,熟悉 一下我们的 if 语句
题目一 : 判断一个数字是奇数还是偶数
// 判断一个数字是奇数还是偶数 public static void main(String[] args) { int n = 10; if(n % 2 == 0){ System.out.println(n + " 是偶数 "); }else{ System.out.println(n + " 不是偶数 "); } }
题目二 : 判断一个数字是正数,负数,还是零
这我们 假设 0 既不是 正数 也不是 负数 (将 if else if 和 else 都 使用上)
// 判断一个数字是正数,负数,还是零 public static void main(String[] args) { // 假设 0 既不是正数 也 不是 负数 //int n = -20 //int n = 20; int n = 0; if(n > 0){ System.out.println(n + " 是正数"); }else if(n < 0){ System.out.println(n + " 不是正数"); }else { System.out.println("n 为 0 "); } }
注意: 这我们 还没 讲到 输入输出 语句 这里 先 让 n 赋值 完成我们的测试, 下面会 讲解。
题目三 : 判断一个年份是否为闰年
这里我们 只需要知道 闰年 的 判断 规则即可,如: 能被 4整除 且不能被 100 整除 或者 能被400整除 ,满足 这 两个条件的 其一就为 闰年。
知道了 条件 不就 非常简单了 吗 直接 来 完成我们的 代码。
// 判断一个年份是否为闰年 public static void main(String[] args) { int n = 200; if(n % 4 == 0 && n % 100 != 0){ System.out.println(n + "为闰年"); }else if(n % 400 == 0){ System.out.println(n + "为闰年"); }else { System.out.println(n + "不是闰年"); } } 这 我们 还可 直接 使用|| 将 两个条件 写在 一个 if 语句 当中 if(n % 4 == 0 && n % 100 != 0 || n % 400 == 0){ System.out.println(n + "为闰年"); }else { System.out.println(n + "不是闰年"); }
完成了 上面的 三个 题目 ,我们是不是 很好的 了解 了 if 语句 。
另外 : if 能够 单独使用 ,而 else 和 else if 是 不能 单独使用的。
这里我们 的 编译器 就 直接画 红线报错了,
注意: 有些 刚学完 c 的 同学 学 Java 会出先 下面的问题 我们来看看 是如何 出错的
public static void main(String[] args) { int n = 10; if(n != 10); { System.out.println("haha"); } }
这里我们 if 语句 后面 多 加了 一个 分号 ;
这里我们 的 haha
会不会 被打印出来 呢?
通过 编译 可以发现 ,· haha
还是 打印 出来 了 , 这里就与我们的 分号 ;
有关 , 这里 if 语句 加了 分号, 会 默认执行 完 这条 语句,然后 就会 直接 进入 大括号 {}
将 haha
打印出来 , 所以这里 还是 需要注意的。 (此处多写了一个 分号, 导致分号成为了 if 语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块)
这里我们 还要注意 一下 悬垂 else 问题
public static void main(String[] args) { int x = 10; int y = 10; if (x != 10) if (y == 10) System.out.println("aaa"); else System.out.println("bbb"); }
这里 大家 可以 思考 一下 ,这里我们 的输出结果 是 啥?
通过 编译器 编译 ,可以发现 啥都没有输入 ,这里是为啥 呢 ?
其实 这里我们 的else 语句 会 与 最近的 if 对齐,而不是 与