java中的if语句

104 阅读4分钟

基本语法:if(布尔表达式){执行语句;}

表达式要求:可以是任何结果为布尔型的表达式,包括比较运算符、逻辑运算符组合或直接布尔值

执行流程:先计算布尔表达式,结果为true则执行大括号内的语句,否则跳过

代码规范:建议始终使用大括号包裹执行语句,即使只有一条语句,这样代码结构更清晰 简化写法:if(布尔表达式) 执行语句;(不带大括号的单条语句)

注意事项:

这种写法虽然语法正确但不推荐使用

分号标志着语句结束,相当于将单条语句作为整体

缺少大括号可能导致代码可读性下降和潜在逻辑错误

例题:判断整数相等性

方法:使用Scanner获取两个整数输入

通过if(date1 == date2)进行相等性判断

相等时输出提示信息

package if1;

import java.util.Scanner;

public class Demo01 {
  public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("请分别输入两个数字");
      int data1 = sc.nextInt();
      int data2 = sc.nextInt();
      if(data1 == data2){
          System.out.println("两个数同样大");
      }else if (data1 > data2){
          System.out.println("第一个数大");
      } else if (data1 <data2) {
          System.out.println("第二个数大");

      }
  }
}

例题:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数

使用Scanner获取两个整数输入

通过==运算符比较两个整数

相等输出"两个整数相等",否则输出"两个整数不相等"

package if1;
import java.util.Scanner;
public class Demo06 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int data = sc.nextInt();
        if (data%2==0){
            System.out.println("偶数");
        }else{
            System.out.println("奇数");
        }
    }
}

例题:年份闰平年判断

能被4整除但不能被100整除:(year%4==0 && year%100!=0)

或能被400整除:||(year%400==0)

  • 实现步骤:

    • 使用Scanner获取年份输入
    • 组合条件判断闰年
    • 输出2月份天数
package if1;
import java.util.Scanner;
public class Demo07 {
    public static void main(String[] args) {
        //1.创建Scanner对象,调用nextInt键盘录入一个年份 year
        Scanner scanner = new Scanner(System.in);
        int year = scanner.nextInt();
        //2.判断(year%4==0 && year%100!=0) || (year%400==0)
        if ((year%4==0 && year%100!=0) || (year%400==0)){
            //3.如果条件成立,就输出闰年2月29天,否则输出平年2月28天
            System.out.println("闰年2月29天");
        }else{
            System.out.println("平年2月28天");
        }
    }
}
如果num1 = false num2 = true num1 = num2 ->相当于将num2的true赋值给了num1

if 的第三种格式

嵌套特性:可以包含多个else if分支,最后可用else作为默认情况处理

  • 顺序判断:从第一个if开始依次向下判断每个布尔表达式

  • 执行规则:当某个条件为true时,执行对应的语句块并结束整个判断结构

  • 默认处理:所有条件都为false时,执行else对应的语句块(如果有)

  • 注意事项
  • else非必需:最后一种情况不一定使用else,也可以用else if明确判断

  • 覆盖原则:必须保证所有可能情况都被判断逻辑覆盖

  • 格式:

    if(boolean表达式){
    执行语句1
    }else if(boolean表达式){
    执行语句2
    }else if(boolean表达式){
    执行语句3
    }...else{
    执行语句n
    }

package if1;
import java.util.Scanner;
public class Demo08 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int data1 = sc.nextInt();
        int data2 = sc.nextInt();
       /* if (data1>data2){
            System.out.println("data1大于data2");
        }else if(data1<data2){
            System.out.println("data1小于data2");
        }else{
            System.out.println("data1等于data2");
        }*/

        if (data1>data2){
            System.out.println("data1大于data2");
        }else if(data1<data2){
            System.out.println("data1小于data2");
        }else if (data1==data2){
            System.out.println("data1等于data2");
        }
    }
}

练习需求:

键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日

输入 1 输出 星期一
输入 2 输出 星期二
输入 3 输出 星期三
输入 4 输出 星期四
输入 5 输出 星期五
输入 6 输出 星期六
输入 7 输出 星期日
输入 其它数字 输出 数字有误

package if1;
import java.util.Scanner;
public class Demo09 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int week = sc.nextInt();
        if (week == 1) {
            System.out.println("周一");
        }else if (week == 2) {
            System.out.println("周二");
        }else if (week == 3) {
            System.out.println("周三");
        }else if (week == 4) {
            System.out.println("周四");
        }else if (week == 5) {
            System.out.println("周五");
        }else if (week == 6) {
            System.out.println("周六");
        }else if (week == 7) {
            System.out.println("周日");
        }else {
            System.out.println("请输入正确的数字(1-7)");
        }
    }
}

练习需求

根据最新的年龄段划分标准: 0-6岁为婴幼儿
7-12岁为少儿
13-17岁为青少年
18-45岁为青年
46-69岁为中年
69岁以上为老年
请键盘录入一个年龄,判断属于什么年龄段

package if1;

import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的年龄:");
        int data = sc.nextInt();
        if (data<=6 && data >0){
            System.out.println("婴儿");
        }else if (data > 6 && data<13){
            System.out.println("少儿");
        }else if (data >= 13 && data<18){
            System.out.println("青少年");
        }else if (data >= 18 && data<46){
            System.out.println("青年");
        }else if (data >= 46 && data<70){
            System.out.println("中年");
        }else if (data>=70 && data<201) {
            System.out.println("老年");
        }else {
            System.out.println("请输入正确的年龄");
        }
    }
}
switch和if的区别:

1.switch:会直接跳到相匹配的case

2.if:从上到下挨个判断 -> 实际开发主要用if做判断,灵活