您的位置:首页 > 职场人生

听说看完这篇文章的程序员再也不会抱怨分支与循环结构难了~不信看看就知道了!

2020-03-31 18:39 831 查看

文章目录

  • 2. switch...case分支结构(等值分支)
  • 二、循环结构
  • 2. while循环(不确定循环)
  • 3、do while循环
  • 4、for循环(确定循环)
  • 5、嵌套循环
  • 三、局部变量【重点】
  • 一、分支结构

    1. if分支结构【重点】

    基本if选择结构
    • 语法
    if(布尔表达式){
    //代码块
    }
    • 执行流程:
      对布尔表达式进行判断;
      结果为true,则先执行代码块,再执行后续代码;
      结果为false,则跳过执行代码块,直接执行后续代码
    • 案例
    main(){
    System.out.print("请输入一个数:");
    Scanner s = new Scanner(System.in);
    int n = s.nextInt();
    if(n % 2 == 0){
    System.out.print("偶数");
    }
    }
    if else选择结构
    • 语法
    if(布尔表达式){
    //代码块1
    }else{
    //代码块2
    }
    • 执行流程:
      对布尔表达式进行判断;
      结果为true,则先执行代码块1,在退出整个结构,执行后续代码
    • 案例
    main(){
    System.out.print("请输入一个数:");
    Scanner s = new Scanner(System.in);
    int n = s.nextInt();
    if(n % 2 == 0){
    System.out.print("偶数");
    }else{
    System.out.print("奇数");
    }
    }
    多重if结构
    • 语法
    if(布尔表达式1){
    //代码块1
    }else if(布尔表达式2){
    //代码块2
    }else if(布尔表达式3){
    //代码块3
    }else{
    //代码块4
    }
    • 执行流程:
      表达式1为true,则执行代码块1,再退出整个结构;
      表达式2为true,则执行代码块2,再退出整个结构;
      表达式3为true,则执行代码块3,再退出整个结构;
      以上均为false,则执行代码块4,再退出整个结构;

      相互排斥,有一个为true,其他均不再执行,适用于区间判断

    • 注意

      elseif个数根据开发需求确定;
      最后else根据开发需求决定是否定义(不是必须写的)判断条件之间互斥.
    • 如果 if后面的{ }中只有一条语句,则可以省略{};
      但是省略之后,if中的条件只对仅跟着{ }后面的一条语句起作用,即使是空语句
      ( ; 代表一个语句)。
  • 案例

  • main(){
    System.out.print("请输入一个数:");
    Scanner s = new Scanner(System.in);
    int n = s.nextInt();
    if(n < 0){
    System.out.print("数据错误!");
    System.exit(0);
    }
    if(n <= 2){
    System.out.print("婴儿");
    }else if(n <= 12){
    System.out.print("儿童");
    }else if(n <= 40){
    System.out.print("青年");
    }else if(n <= 60){
    System.out.print("中年");
    }else{
    System.out.print("老年");
    }
    }
    if嵌套结构
    • 语法
    if(外层表达式){
    if(内层表达式){
    //内层代码块1
    }else{
    //内层代码块2
    }
    }else{
    //外层代码块
    }
    • 执行流程:
      当外层条件满足时,再判断内层条件

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

    • 注意
      先判断外层if的条件,条件成立,则判断内层if条件…

    2. switch…case分支结构(等值分支)

    • 语法
    switch(变量|表达式){  //变量int,表达式的值可以为byte,short,int,char
    case 值1:
    //逻辑代码1;
    case 值2:
    //逻辑代码2;
    case 值n:
    //逻辑代码n;
    default:
    //未满足case时的逻辑代码;
    }
    • 执行流程:
      如果变量中的值等于值1,则执行逻辑代码1;
      如果变量中的值等于值2,则执行逻辑代码2;
      如果变量中的值等于值3,则执行逻辑代码3;
      如果变量中的值没有匹配的case值时,执行default中的逻辑代码。
      所有case的取值不可相同

    • 注意

      a. switch后面()中表达式的结果类型
      byte/short/int/char;
      JDK7.0及以上版本支持String的结果类型。
    • b. break:终止、中断,break应用再switch…case结构中代表终止、跳出switch…case结构。
    • c. default没有位置限制,可以写在 swtich结构{}中的case或是case都可以,所以建议 default后面的break不省略。
  • 案例

  • main(){
    Scanner s = new Scanner(System.in);
    int a = s.nextInt();
    switch(a){
    case 1:
    System.out.println(1);
    case 2:
    System.out.println(2);
    case 3:
    System.out.println(3);
    default:
    System.out.println("Others");
    }
    }

    二、循环结构

    1. 循环的理解
    概念

    通过某一个条件,重复并且有规律的执行一段代码。

    循环组成

    循环变量的初始化、循环的条件、循环变量的改变(递增/递减)、循环体。

    2. while循环(不确定循环)
    • 语法
    while(布尔表达式){
    //逻辑代码(循环操作	)
    }
    • 执行流程:
      先对布尔表达式进行判断,结果为true,则执行逻辑代码;
      本次执行完后,再次进行判断,结果仍旧为true,则再次执行逻辑代码;
      直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码
    • 特点
      先判断,再执行,执行次数0~n次
    • 如果循环中,没有对循环变量进行改变,可能会出现死循环
    • 循环中需要累加数据之和,则定义累加器,通常初始化数据为0;
      而且累加器需要定义在循环的外面。
    • 案例
    main(){
    int i = 1;//循环变量
    int result = 0;
    while(i<=100) {
    result = result +i;
    i++;
    }
    System.out.println(result);
    }
    3、do while循环
    • 语法
    do{
    //逻辑代码(循环操作)
    }while(布尔表达式);
    • 执行流程:
      先执行一次循环操作后,再进行布尔表达式的判断;
      如果结果为true,则再次执行循环操作;
      如果结果为false,才会退出循环结构,执行后续代码
    • 特点
      先执行,再判断。执行的次数为 1~n次
    • 案例
    main(){
    int i = 1;//循环变量
    do{
    result =result+i;
    i++;
    }while(i<=100){
    System.out.println(result);
    }
    }
    4、for循环(确定循环)
    • 语法
    for(初始部分;循环条件;迭代部分){  //;;不能省略
    //循环操作
    }
    • 执行流程:
      先对布尔表达式进行判断,结果为true,则执行逻辑代码;
      本次执行完后,再次进行判断,结果仍旧为true,则再次执行逻辑代码;
      直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码
    • 特点:先判断,再执行,执行次数:0~n次
    • 注意 a. 循环变量的初始化可以定义在循环的外面,但是for后面()中的分号不能省略。定义在for后面()中的循环变量只能在当前循环结构中被使用,循环一旦结束,循环变量失效,节省内存空间;如果将循环变量定义在for的外面,扩大了循环变量的作用范围,可能造成空间浪费。
    • b. 如果循环条件省略,则默认条件为true,可能出现死循环现象。
    • c. 循环变量的改变可以定义在 for的{}中,但是避免多次对循环变量for(循环变量的初始化;循环条件;循环变量的改变)
  • main(){
    for(int i = 1;i <= 100;i++){
    result = result +i;
    }
    System.out.println(result);
    }
    5、嵌套循环
    概念

    在循环结构中嵌套一个完整的循环结构。(一个循环结构的循环体又是一个循环)

    循环的次数

    外层循环次数*内层循环次数

    循环嵌套打印图形
    • 外层循环
      控制图形的行数
    • 内层循环:控制图形的列数
    流程控制关键字
    • break:结束、终止本层循环
    • continue:中止跳出本层的本次循环,从而进入本层下一次循环
    • 案例
    //嵌套循环
    main(){
    for(int i = 1;i <= 10;i++){
    for(int j = 1;j <= 5;j++) {
    if(i == 4 && j==3) break;
    System.out.print("i="+i+"j"+j+"\t");
    }
    System.out.println();
    }
    }
    //流程控制关键字
    main(){
    for(int i = 1;i <= 10;i++){
    if(i == 9) break;
    System.out.println("HelloWorld"+i);
    }
    for(int i = 1;i <= 10;i++){
    if(i == 9) continue;
    System.out.println("HelloWorld"+i);
    }
    }
    //流程控制关键字案例
    //外层循环
    //outer:
    for(int i=1;i<=3;i++){
    //内层循环
    //inner:
    for(int j=1;j<=5;j++){
    if(j==3){
    continueouter;//中止、跳出外层循环的本次循环,进入外层循环的下一次
    }
    System.out.println("i="+i+",j="+j);
    }
    }
    //流程控制关键字案例
    //外层循环
    //outer:
    for(int i=1;i<=3;i++){
    //内层循环
    //inner:
    for(int j=1;j<=5;j++){
    if(j==3){
    breakouter;//终止、结束外层循环结构
    }
    System.out.println("i="+i+",j="+j);
    }
    }

    三、局部变量【重点】

    概念
    • 定义在函数/方法/初始化代码块内部的变量
    • 目前:定义在函数内部的变量称为局部变量
    特点
    • 局部变量必须先赋值再使用
      错误提示:可能尚未初始化变量
    • 作用范围
      从定义它的位置开始,到定义它的代码块结束
      超出范围使用,提示错误:找不到符号
    • 命名冲突
      在重合的作用范围内,不允许命名冲突(有同名的变量名)
      错误提示:已在函数 main(String[])中定义了变量
    扩充
    • 随机数生成(Random) 位于java.util包中
      导入包:
      import java.util.Random;
    • 创建Random对象
      Random rd=new Random();
    • 使用rd生成整数
      int n=rd.nextInt(n); //自动生成0~n-1的数据

    整理不易,喜欢请点个赞!
    编者微信:1014961803,添加时请备注"CSDN"

    • 点赞 3
    • 收藏
    • 分享
    • 文章举报
    微笑·不失礼 发布了16 篇原创文章 · 获赞 18 · 访问量 2088 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: 
    相关文章推荐