if 结构

if 语句是使用最多的条件分支结构,它属于选择语句,也可以称为条件语句。

if 选择结构是根据条件判断之后再做处理的一种语法结构。默认情况下,if 语句控制着下方紧跟的一条语句的执行。不过,通过语句块,if 语句可以控制多个语句。

if 语句的最简语法格式如下,表示“如果满足某种条件,就进行某种处理”。

 
  1. if (条件表达式) {
  2. 语句块;
  3. }

其中“条件表达式”和“语句块”是比较重要的两个地方。

  1. 条件表达式:条件表达式可以是任意一种逻辑表达式,最后返回的结果必须是一个布尔值。取值可以是一个单纯的布尔变量或常量,也可以是使用关系或布尔运算符的表达式。如果条件为真,那么执行语句块;如果条件为假,则语句块将被绕过而不被执行。
  2. 语句块:该语句块可以是一条语句也可以是多条语句。如果仅有一条语句,可省略条件语句中的大括号 {}。当从编程规范角度不要省略大括号,省略大括号会使程序的可读性变差。


if 条件语句的运行流程如图 1 所示。
 


图1  if 语句执行流程图

例 1

编写一个 Java 程序,允许用户从键盘输入一个数字,再判断该数是否大于 100。使用 if 语句的实现代码如下:

 
  1. public static void main(String[] args) {
  2. System.out.println("请输入一个数字:");
  3. Scanner input = new Scanner(System.in);
  4. int num = input.nextInt(); // 接收键盘输入数据
  5. // 判断用户输入的数据是否大于100
  6. if (num > 100) {
  7. System.out.println("输入的数字大于100");
  8. }
  9. // 判断用户输入的数据是否等于100
  10. if (num == 100) {
  11. System.out.println("输入的数字等于100");
  12. }
  13. // 判断用户输入的数据是否小于100
  14. if (num < 100) {
  15. System.out.println("输入的数字小于100");
  16. }
  17. }

运行该程序,分别使用键盘输入 99、100 和 105,结果如下所示:

请输入一个数字:
99
输入的数字小于100
请输入一个数字:
100
输入的数字等于100
请输入一个数字:
105
输入的数字大于100

例 2

假设有 num1 和 num2 两个变量,它们的值分别是 50 和 34。下面编写程序,要求使用 if 语句判断 num1 和 num2 的大小关系,并输出比较结果。

实现代码如下:

 
  1. public static void main(String[] args) {
  2. int num1 = 50;
  3. int num2 = 34;
  4. if (num1 > num2) {
  5. System.out.println("num1大于num2");
  6. }
  7. if (num1 == num2) {
  8. System.out.println("num2等于num2");
  9. }
  10. if (num1 < num2) {
  11. System.out.println("num1小于num2");
  12. }
  13. }

该段选择语句判断了 num1 值和 num2 值的大于、等于和小于关系。此处 num1 为 50,num2 为 34,所以执行后会输出“num1 大于 num2”。

例 3

在上述两个案例代码中,由于每个 if 语句的语句块中只包含一条语句,所以省略了大括号。本实例在登录系统中要求用户名、密码和验证码都必须正确,否则将显示登录失败及错误提示。其中的语句块有多条语句,所以需要使用大括号。代码如下:

 
  1. public static void main(String[] args) {
  2. String username = "admin"; // 用户名
  3. String userpass = "123456"; // 密码
  4. String code = "0000"; // 验证码
  5. if (username != "admin" && userpass != "123456" && code != "0000") {
  6. System.out.println("登录失败!");
  7. System.out.println("请检查输入的用户名、密码和验证码是否正确!");
  8. }
  9. }

在这里为 if 语句设置了一个复杂的复合表达式来验证登录条件。执行后的输出结果如下:

登录失败!
请检查输入的用户名、密码和验证码是否正确!

if-else 结构

单 if 语句仅能在满足条件时使用,而无法执行任何其他操作(停止)。而结合 else 语句的 if 可以定义两个操作,此时的 if…else 语句表示“如果条件正确则执行一个操作,否则执行另一个操作”。

使用 if…else 语句的语法格式如下所示:

 
  1. if (表达式) {
  2. 语句块1;
  3. } else {
  4. 语句块2;
  5. }

在上述语法格式中,如果 if 关键字后面的表达式成立,那么就执行语句块 1,否则的话则执行语句块 2,其运行流程如图 2 所示。
 



图2  if…else 运行流程

例 4

在例 3 中为实现比较 num1 和 num2 的大小,使用了 3 个 if 条件语句分别判断大于、等于和小于的情况。下面使用 if…else 双条件来实现,具体代码如下:

 
  1. public static void main(String[] args) {
  2. int num1 = 50;
  3. int num2 = 34;
  4. // 如果num1等于num2
  5. if (num1 == num2) {
  6. System.out.println("num1等于num2");
  7. }
  8. // 如果num1大于num2
  9. if (num1 > num2) {
  10. System.out.println("num1大于num2");
  11. } else {
  12. // 否则就是num1小于num2
  13. System.out.println("num1小于num2");
  14. }
  15. }

双条件语句减少了代码的编写量,同时增强了程序的可读性。简化后的结果还是一样,执行后会输出“num1 大于 num2”。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值