java的流程控制

一、流程控制

1、定义

​ 在一个Java程序中,各条语句的执行对程序的结果有直接影响,也就是说 各个语句的执行顺序对程序的结果有直接影响。

​ 在程序中 ,可能出现不同的执行顺序,必须 自上而下顺序执行,或者 条件判断的顺序或者循环执行的顺序。

2、分类

​ 顺序执行

​ 条件分支

​ 循环执行

3、顺序执行

 //顺序执行, 从上而下执行 
public static void main(String [] args){
      System.out.println(1);
       System.out.println(2);
        System.out.println(3);
 }

4、条件分支

1、if条件分支

​ 语法:

if(条件){
    语句块
}
其他代码

解释: 如果条件成立 ,则执行语句块 ,如果条件不成立,则不执行语句块

   // 生成一个100以内的随机数   判断它是否为偶数
        int n = (int)( Math.random()*100);
        if(n%2 == 0){
            System.out.println("这是数是偶数");
        }
        System.out.println("程序结束");

2、if…else条件分支

语法:

  if(条件){
       语句块1
  }else{
      语句块2
  }

解释: 如果条件成立, 则执行语句块1 ,如果条件不能力 ,则执行语句块2

  int n = (int)(Math.random()*100);
        // n<50 需要买西瓜   >50 需要买葡萄
        if(n<50){
            System.out.println("买了一个大西瓜");
        }else{
            System.out.println("买了一串葡萄");
        }
        System.out.println("n->"+n);
        System.out.println(" 嗯,程序猿的女朋友很高兴,至少买了水果");

3、if…else if … else 多条件分支

语法:

 if(条件1){
     语句块1
 }else if(条件2){
     语句块2
 }else if(条件3){
     语句块3
 }
 ...
 else{
     语句块4
 }

解释: 从条件1开始依次判断,如果条件1 成立,则执行语句块1 ,其他条件不再执行,如果条件2成立,则执行语句块2,其他条件不再执行。。。 依次类推如果条件都不成立,则执行else语句块。 ,最终只执行其中某一个语句块,

   // 随机生成90以内的年龄  整数
        int n = (int)(Math.random()*90);
        if(n<18){
            System.out.println("未成年");
        }else if( n<30){
            System.out.println("青年");
        }else if( n<50){
            System.out.println("中年");
        }else if( n<70){
            System.out.println("老年");
        }else{
            System.out.println("晚年");
        }
        System.out.println("n->"+n); 

嵌套条件判断

语法: 以上3种格式 ,可以同时使用,在一个if语句再次嵌套if 语句

        // 接收控制台输入 ,  判断 输入的数 是否能被3整除
          // 如果能被3整除,输出这个数除以3的结果,并判断结果能被7整除
           // 如果不能被3整除,判断是否为偶数

        Scanner sc = new Scanner(System.in);
        // 接收控制台输入的整数
        int n = sc.nextInt();
        if(n%3 == 0 ){
            System.out.println("这个数能被3整除");
            // 在if语句中继续判断, 就是嵌套条件判断 ,需要往后缩进
            int result= n/3;
         	if(result%7 == 0){
                System.out.println("这个结果能被7整除");
            }else{
                System.out.println("这个结果不能被7整除");
            }
        }else{
            System.out.println("这个数不能被3整除");
            if(n%2 ==0){
                System.out.println("这个数能2整除");
            }else{
                System.out.println("这个数不能被2整除");
            }
        }

注意 : 嵌套条件时 为了增强代码的可读性,将条件语句块的分支 往后缩进 ,{}作为一个整体

​ 条件语句块中如果只有一个输出语句, 可以省略{}

5、选择条件判断

语法:

switch(表达式){
    case 常量值1:
       语句块1;
      break;    // 语句块接收的标记
    case 常量值2:
       语句块2break;
      ...
    default: 
       语句块3break}

注意: switch 的表达式判断 只能等值比较 ,其中case的常量值 类型位: 整数型(byte short int long ),字符型,字符串型,枚举型

  byte n = (byte)(Math.random()*7+1);
        switch (n){
            case 1 :
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6 :
                System.out.println("星期六");
                break;
            default :
                System.out.println("星期天");
                break;
        }

case穿透问题

在switch中,如果case后面不写break,将会出现穿透现象,也就是说不会执行下一个case的判断条件直接往后运行,直到遇到break,或整体switch结束

练习

* 1、使用switch制作一个简单的计算器:
* 让用户输入计算数字1和运算符 及计算数字2,然后程序帮他计算出结果。
*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值