Java学习选择结构与分支

29 篇文章 0 订阅
26 篇文章 0 订阅

选择结构与分支

选择结构,根据已知条件进行逻辑判断,满足条件后执行相应的操作。

  1. If选择结构

语法:if(布尔表达式){ // 代码块  }

执行流程:

  1. 对布尔表达式进行判断
  2. 结果为true,则先执行代码块,在执行后续代码
  3. 结果为false,则跳过代码块,直接执行后续代码。
  1. If else选择结构

语法:if(布尔表达式){ // 代码块1} else {  // 代码块2 }

执行流程:

  1. 布尔表达式进行判断
  2. 结果为true,则先执行代码块1,再退出整个结构,执行后续代码
  3. 结果为false,则先执行代码块2,再退出整个结构,执行后续代码。

int a1 = 10;

         if(a1 == 20){

         System.out.println(a1);

         } else {

         System.out.println("a1是不满足条件的");

         }

  1. 多重if选择结构

语法:if(布尔表达式1) { // 代码块1 } else if(布尔表达式2) { //代码块2 } else if(布尔表达式3) { // 代码块3} else { // 代码块4}

执行流程:

  1. 表达式1为true,则执行代码块1,再退出整个结构
  2. 表达式2为true,则执行代码块2,再退出整个结构
  3. 表达式3为true,则执行代码块3,再退出整个结构
  4. 以上表达式为false,则执行代码块4,再退出整个结构

注意:相互排斥,有一个为true,其他均不再执行,适用区间判断,弹药保证条件顺序(从大到小,从小到大)。

特点:一定有一个语句被执行,即一定有一个结果被输出!

//多重if条件语句

        int score = 30;

        if(score == 100){

        System.out.println("恭喜,满分");

        } else if(score >= 90) {

        System.out.println("优秀");

        }else if(score >= 70) {

        System.out.println("良");

        }else if(score >= 60) {

        System.out.println("合格");

        }else {

        System.out.println("很遗憾,不及格");

        }

  1. 嵌套if选择结构

语法:if(外层表达式) { if (内层表达式) { // 内层代码块 } else { // 内层代码块2 } else { // 外层代码块 }

执行流程:当外层条件满足时,在判断内层条件。

注意:一个选择结构中,可嵌套另外一个选择结构;嵌套格式正确的情况下,支持任意组合。

//嵌套if条件语句

        int a1 = 10;

        if(a1 != 20){

               if(a1 == 10){

                      System.out.println("a1是目标对象");

               }

        } else {

               System.out.println("a1是不满足条件的");

        }

  1. 分支结构

语法:switch(变量 | 表达式 ){case 值1: 逻辑代码1; case  值2: 逻辑代码2;  case  值n:  逻辑代码n;  default: 未满足时的逻辑代码; }

!!!!支持数值类型数据

执行流程:

  1. 如果变量的值等于值1,则执行逻辑代码1
  2. 如果变量的值等于值2,则执行逻辑代码2
  3. 如果变量的值等于值n,则执行逻辑代码n
  4. 如果变量的值没有匹配的case值,则执行default中的逻辑代码

int a1 = 9;

        switch(a1){

               case 1:

                      System.out.println();

                      break; // 跳出代码块

               case 9:

                      System.out.println("命中");

                      break;

               default:

                      System.out.println("无法选中");

        }

break

关键字作用:跳出当前代码块

注意:break代码下面不能写代码

变量

局部变量

概念:针对与当前代码块中有效变量,也就是说在代码块中定义的变量,都是局部变量,仅仅针对于当前的代码时有效的。

作用域:当前类文件(父级代码块的局部变量子级代码块中可以使用,而子级中代码块声明变量父类代码块)

成员变量

概念:是针对与这个文件都是有效的

作用域:当前整个文件

循环结构

while循环

语法:while(布尔表达式){ // 逻辑代码(循环操作) }

        int a1 = 10;

        while(a1 <= 15){

               System.out.println("a1");

               a1++;

              }

特点:首次即有入口条件,先判断、再执行,适用于循环数次明确的情况。

do while循环

语法:do { // 逻辑代码 } while (布尔表达式) ;

int a1 = 10;

        do{

               System.out.println("a1:"+a1);

               a1++;

        }while(a1 <= 15);

特点: 首次没有入口条件,先执行,再判断。适用于循环次数不明确的情况。

for循环

for(初始部分 ; 循环条件 ;迭代部分) { // 循环操作 }

 

特点:首次既有入口条件,先判断、再执行,适用于循环次数明确的情况。

 

嵌套循环

For ( ) { for ( ) { } }  外层控制行数,内层控制列数

Break关键字是用来跳出当前的循环体,continue关键字是跳过当前循环

 

案例1:在控制台输入一个n,计算n的阶乘,在控制台录入5名同学的分数,并计算平均分。

import java.util.Scanner;

public class TestScanner {

   public static void main(String[] args) {

      Scanner input = new Scanner(System.in);

      int n = input.nextInt();

      int avg = 1;

      int avg1 = 1;

      int sum = 0;

      for (int i = 1; i <= n; i++) {

          avg *= i;

      }

      for (int j = 1; j <= 5; j++) {

          System.out.println("请输入第" + j + "位同学的分数");

          int scort = input.nextInt();

          sum += scort;

      }

      avg1 = sum / 5;

      System.out.println(n + "阶乘" + avg);

      System.out.println("五位同学平均分:" + avg1);

   }

}

案例2:打印一个等腰三角形

import java.util.Scanner;

public class TestTriangleUpSimple {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        int i = input.nextInt();
        for (int j = 0; j < i; j++) { // 外层控制循环几层
            // 打印左侧空白三角形
            for (int j2 = j; j2 < i-1; j2++) { // 控制循环每层打印的次数
                System.out.print(" ");
            }
            // 打印右侧*号
            for (int j2 = 0; j2 < 2 * j + 1; j2++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值