ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java基础学习Day06-流程控制

2022-04-12 22:32:27  阅读:162  来源: 互联网

标签:语句 java 流程 Day06 System while 循环 println out


一.顺序结构

  • java基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行

  • 顺序结构是最简单的算法结构

  • 语句和语句之间,框和框之间按从上到下的顺序进行的,他由若干个依次执行的处理步骤组成的,是任何一个算法都离不开的一种基本算法结构。

    public static void main(String[] args) {
        System.out.println("1d");
        System.out.println("2d");
        System.out.println("3d");
        System.out.println("4d");
    }
    

二.选择结构

  • if单选泽结构:

    • 判断一个东西是否可行,可行则执行,不可行则跳过,我们使用if语句来实现

    • 语法:

      if (布尔表达式){
          //布尔表达式为true则执行的语句
      }
      
      public static void main(String[] args) {
          Scanner scanner = new Scanner(System.in);
          System.out.println("please enter words:");
          String i = scanner.nextLine();
          if (i.equals("hello")){
              System.out.println(i);
          }
          System.out.println("end");//不论是否都会执行
      }
      
  • if双选择结构

    • 需要两个判断,可行一种做法,不可行另一种做法

    • 语法

      if (布尔表达式1){
          //若布尔表达式的值为true则执行该语句
      }else{
          //若布尔表达式的值为false则执行该语句
      }
      
      public static void main(String[] args) {
          Scanner scanner =new Scanner(System.in);
          System.out.println("请输入分数为:");
          //分数是否及格,大于等于60为及格,小于60不及格
          int i =scanner.nextInt();
          if (i>=60){
              System.out.println("及格");
          }else{
              System.out.println("不及格");
          }
      
          scanner.close();
      }
      
  • if多选择结构

    • 通常真实情况下,我们需要多种情况需要判断,例如成绩的a,b,c,d,等级,我们就需要使用多选择结构

    • 语法

      if (布尔表达式1){
          //若布尔表达式1的值为true则执行该语句
      }else if(布尔表达式2){
          //若布尔表达式2的值为true则执行该语句
      }else if(布尔表达式3){
          //若布尔表达式3的值为true则执行该语句
      }else{
          //如果以上布尔表达式都不为true则执行该语句
      }
      
      public static void main(String[] args) {
          Scanner scanner = new Scanner(System.in);
          System.out.println("please enter score:");
          int score = scanner.nextInt();
          if (score==100){
              System.out.println("awsome!");
          }else if(score>=80 && score<100){
              System.out.println("great!");
          }else if(score>=60 && score<80){
              System.out.println("not bad!");
          }else if(score<60){
              System.out.println("pity!");
          }else{
              System.out.println("error");
          }
      }
      
  • switch多选择结构(switch,case,)

    • switch,case语句判断一个变量与一系列值中的某个值是否相等,每个值称为一个分支。

    • switch语句中的变量类型可以是

      • byte,short,int,或者char
      • 从javaSE7开始
      • switch支持字符串和String类型了
      • 同是case标签必须为字符串常量或者字面量。
    • 语法

      switch(expression){
          case value:
              //语句
              break;//可选
          case value:
              //语句
              break;//可选
              .....
              default://可选
              //语句
      }
      
      public static void main(String[] args) {
          char grade = 'C';
          //case穿透:使用break终止case匹配,若不使用break,下面的语句也会被执行
      
          switch (grade){
              case 'A':
                  System.out.println("wonderful");
                  break;
              case 'B':
                  System.out.println("great");
                  break;
              case 'C':
                  System.out.println("nice");
                  break;
              case 'D':
                  System.out.println("not bad");
                  break;
              default:
                  System.out.println("unknow");
          }
      }
      

      java文件

      IDEA反编译文件,使用hashcode保存键值

三.循环结构

  • while循环
  • do...while循环
  • for循环
  • 在java5中引入了一种主要用于数组的增强型for循环
  1. while循环:

    • while是最基本的循环,它的结构为

      while (布尔表达式){
          //循环内容
      }
      
    • 只要布尔表达式为true,他就会一直循环下去

    • 我们大部分情况是会让循环停止的,我们需要一个让表达式失效的方式来结束循环

    • 少部分情况需要循环一直执行,比如服务器的请求响应监听

    • 循环条件一直为true,就会形成死循环,正常业务中应当避免这种情况

    • Q:累加计算

      public class whileDemo03 {
          public static void main(String[] args) {
              int i = 0;
              int sum = 0;
              while (i<=100){
                  sum = sum + i;
                  i++;
              }
              System.out.println(sum);
          }
      }
      
  2. do...while循环

    • 对于while循环来说,如果不满足条件,则不能进入循环。但是有时候我们需要即使不满足条件,也至少执行一次

    • do...while和while相似,不同的是do...while至少会执行一次

      do {
          //code
      }while (布尔表达式);
      
    • while和do...while区别:

      • while是先判断后执行,do...while是先执行后判断
      • do...while保证循环体至少会执行一次
      public static void main(String[] args) {
          int a = 0;
          while(a<0){
              System.out.println(a);
              a++;
          }
          System.out.println("===========================");
          do{
              System.out.println(a);
              a++;
          }while(a<0);
      }//分割线下方输出a=0;,dowhile语句执行了一次
      
  3. for语句

    • for循环提供了一种更简单的循环结构

    • for循环是一种支持迭代的通用结构,是最有效,最灵活的循环结构

    • for循环的执行次数是在循环开始之前就决定好的,语法如下

      for (初始化;布尔表达式;更新){
          //代码语句
      }
      
      public static void main(String[] args) {
          int i = 0;//初始化条件
          while (i<=10){//条件判断
              System.out.println(i);//循环体
              i+=2;//迭代
          }
          System.out.println("================分割线=================");
      
          //初始化;条件判断;迭代
          for (int a=0;a<10;a+=2){
              System.out.println(a);
          }
      }
       //死循环
              for (; ; ) {
      
              }
      
    • 打印99乘法表

      public static void main(String[] args) {
          for (int i = 1; i < 10; i++) {
              for (int j = 1; j <=i; j++) {
                  System.out.print(i + "*" + "j" + "=" + i*j +" ");
                  if (i == j){
                      System.out.println();
                  }
              }
          }
      }
      

四.增强for循环

  • java5引入了一种主要用于数组或集合的增强型for循环

  • java增强for循环格式如下:

    for (声明语句 : 表达式)
    {
        //代码句子
    }
    
  • 声明语句:声明新的局部变量,该变量的类型必须与数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素值相等。

  • 表达式:表达式是要访问的数组名,或者返回值为数组的方法。

    public class ForDemo05 {
        public static void main(String[] args) {
            int[] numbers = {10,20,30,40,50};//定义一个数组
            //for循环遍历数组,把numbers的值赋值给x输出
            for (int x:numbers){
                System.out.println(x);
            }
        }
    }
    

五.break和continue

  • break在任何循环的主体部分,均可使用break来控制循环的流程。break用于强行退出循环,不执行循环中的剩余的语句。

  • continue语句用于再循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

    public class ContinueDemo {
        public static void main(String[] args) {
            int i = 0;
            while (i<20){
                System.out.print(i + " ");
                i++;
                if (i%3==0){
                    System.out.println(" ");
                    continue;//跳出当前循环,回到上层循环
                }
            }
        }
    }
    
    public class BreakDemo {
        public static void main(String[] args) {
            int i = 0;
            while (i<10){
                System.out.println(i);
                i++;
                if (i==5){
                    break;//跳出全部循环
                }
            }
        }
    }
    
  • goto关键字

    • goto是java的一个保留字,但并未正式使用,java没有goto,
    • 标签:指后面跟一个冒号的标识符,例如:label:
    • 对于java唯一用到标签的地方是在循环语句之前,而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一层循环,与break,continue一起使用可以中断到标签的位置。
  • 打印一个三角形

    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            for (int j = 5; j >= i; j--) {
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            for (int j = 1; j < i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

标签:语句,java,流程,Day06,System,while,循环,println,out
来源: https://www.cnblogs.com/workplace-blog/p/16137914.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有