Java中的分支语句

本文介绍了Java编程中的if语句、Scanner用于获取用户输入,以及分支结构(if、if...else、if...elseif、switch)的使用示例,包括如何判断偶数、天数计算和命令解析。还涉及了Random类生成随机数的应用。

if语句和Scanner

if语句:一种分支语句
1.if结构: 1条路
  1)语法:
      if(boolean){
         语句块------------基于条件执行的语句
      }
  2)执行过程:
      判断boolean的值:
        若为true,则执行语句块(if结束)
        若为false,则if直接结束
Scanner语句:接受用户输入的数据(初期不需要理解但要记住)

一、Scanner语句 

//Scanner的演示
   public class ScannerDemo {
       public static void main(String[] args) {
           Scanner scan = new Scanner(System.in); //2.创建了一个扫描仪,叫scan
           System.out.println("请输入年龄:");
           int age = scan.nextInt(); //3.扫描一个整数并赋值给age
           System.out.println("请输入商品价格:");
           double price = scan.nextDouble(); //3.扫描一个小数并赋值给price
   
           System.out.println("年龄为:"+age+",商品价格为:"+price);
       }
   }

二、if语句

 //1)偶数的判断:
             Scanner scan = new Scanner(System.in);
             System.out.println("请输入一个整数:");
             int num = scan.nextInt();
     
             //带数(6,5)
             if(num%2==0){
                 System.out.println(num+"是偶数");
             }
             System.out.println("继续执行...");
             */
     
     

任何复杂的程序逻辑,都可以通过三种结构来实现:
1)顺序结构:从上往下逐行执行,每句必走
2)分支结构:有条件的执行某语句,并非每句必走
3)循环结构:循环执行

三、if...else

- if...else结构:2条路
 2.if...else结构: 2条路
   1)语法:
      if(boolean){
        语句块1
      }else{       //问:语句块1和语句块2,有可能同时执行吗?-------不可能
        语句块2     //问:语句块1和语句块2,有可能同时都不执行吗?---不可能
      }

   2)执行过程:
      计算boolean的值:
        若为true,则执行语句块1(整个结束)
        若为false,则执行语句块2(整个结束)

   3)说明:
      语句块1和语句块2,必走其中之一----------2选1
public class IfDemo {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个数:");
    int num = scanner.nextInt();

    if (num%2==0){
        System.out.println(num+"是偶数");
    }else{
        System.out.println(num+"是奇数");
    }
    }
}

四、if...else...if

分支结构:
if...else..if结构:多条路
import java.util.Scanner;
//if...else if结构的演示
public class IfElseIfDemo {
    public static void main(String[] args) {
        /*
          3.天数判断程序:
            1)接收用户输入的年份和月份,来计算天数
              --1/3/5/7/8/10/12--------31天
              --4/6/9/11---------------30天
              --2----------------------28天(平年)/29天(闰年)
              闰年的判断公式:
              1)能被4整除并且不能被100整除
                或者
              2)能被400整除
         */
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = scan.nextInt();
        System.out.println("请输入月份:");
        int month = scan.nextInt();

        //带数(2024.2)(2023.2)(2000.2)(2024.5)(2024.9)
        int days; //天数
        if(month==1 || month==3 || month==5 || month==7 ||
           month==8 || month==10 || month==12){
            days = 31;
        }else if(month==4 || month==6 || month==9 || month==11){
            days = 30;
        }else{ //2月
            if((year%4==0 && year%100!=0) || year%400==0){ //闰年
                days = 29;
            }else{ //平年
                days = 28;
            }
        }
        System.out.println(year+"年的"+month+"月总共"+days+"天");

五、switch...case结构

  • switch...case结构:多条路

    • 优点:效率高、结构清晰

    • 缺点:只能对整数判断相等

    • break:跳出switch

    • switch中数据的类型:byte,short,int,char,String,枚举

import java.util.Scanner;
//命令解析程序
public class CommandBySwitch {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请选择功能: 1.存款 2.取款 3.查询余额 4.退卡");
        int command = scan.nextInt();

        switch(command){
            case 1:
                System.out.println("存款业务...");
                break;
            case 2:
                System.out.println("取款业务...");
                break;
            case 3:
                System.out.println("查询余额业务...");
                break;
            case 4:
                System.out.println("退卡成功");
                break;
            default:
                System.out.println("输入错误");
        }
    }
}

六、Random随机数

import java.util.Random; //1.导入随机数
//随机数的演示
public class RandomDemo {
    public static void main(String[] args) {
        Random rand = new Random(); //2.新建一个随机数对象rand

        /*
          练习:
          1)声明整型变量h并赋值为10到30之间的随机数,并输出
          2)声明整型变量i并赋值为5到10之间的随机数,并输出
          3)声明整型变量j并赋值为20到60之间的随机数,并输出
          4)声明整型变量k并赋值为100到200之间的随机数,并输出
         */
        int h = rand.nextInt(21)+10; //10到30
        System.out.println(h);
        int i = rand.nextInt(6)+5; //5到10
        System.out.println(i);
        int j = rand.nextInt(41)+20; //20到60
        System.out.println(j);
        int k = rand.nextInt(101)+100; //100到200
        System.out.println(k);

        /*
          规律:
           31:最大值-最小值+1
           20:最小值
         */
        /*
        int e = rand.nextInt(31)+20; //20到50
        System.out.println(e);
        int f = rand.nextInt(45)+16; //16到60
        System.out.println(f);
        int g = rand.nextInt(26)+50; //50到75
        System.out.println(g);
         */

        /*
        int a = rand.nextInt(); //生成整个int范围内的随机数(正负21个多亿)
        System.out.println(a);
        int b = rand.nextInt();
        System.out.println(b);

        int c = rand.nextInt(100); //0到99
        System.out.println(c);
        int d = rand.nextInt(26); //0到25
        System.out.println(d);
        */
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值