zoukankan      html  css  js  c++  java
  • 黑马程序员——Java基础语法(二)---流程控制

      本文主要介绍java基础语法中的流程控制,流程控制是我们写出灵活代码的基础。常见的流程控制主要有四类:判断结构、选择结构、循环结构、其他控制结构

      一、判断结构

        判断结构的标志是if语句,if语句主要有三种表现形式:

        1、if(条件表达式)

          {

            执行语句

          }   

          注意:

          1、如果if语句中只有一条语句,那么可以不写大括号。不过初学者一定要写括号,以免出错。

          2、如果if语句没写大括号,if就只能控制离它最近的单条语句。

       

        2、if(条件表达式)

          {

            执行语句;

          }

          else

          {

            执行语句;

          }

          三元运算符是if-else格式的简写,但是三元运算符是一个表达式,是要产生具体的结果的,所以在if-else结构有具体的结果的时候可以简写为三元运算符。

        3、if(条件表达式)

          {

            执行语句;

          }

          else if(条件表达式)

          {

            执行语句;

          }

          else

          {

            执行语句;

          } 

      我们可以写个程序加深对于if-else结构的理解:根据用于指定月份,打印该月份所属的季节。

     1 class OperatorDemo
     2 {
     3     public static void main(String[] args)
     4     {
     5          IfDemo(9);
     6      }
     7     static void IfDemo(int month)
     8     {
     9         //一年有四季,春3-5,夏6-8,秋9-11,冬12-2
    10         if(month<1||month>12)
    11             System.out.println("没有"+month+"月,这个月份!");
    12         else if (month>=3&&month<=5)
    13         {
    14             System.out.println(+month+"月是春季!");
    15         }
    16         else if (month>=6&&month<=8)
    17         {
    18             System.out.println(+month+"月是夏季!");
    19         }
    20         else if (month>=9&&month<=11)
    21         {
    22             System.out.println(+month+"月是秋季!");
    23         }
    24         else
    25         {
    26             System.out.println(+month+"月是冬季!");
    27         }
    28     }
    29 }

      输出的结果为:

      

       

      二、判断结构

      判断结构的标志是switch

        格式:

        switch(表达式)

        {

          case 取值1:

            执行语句;

            break;     

          case 取值1:

            执行语句;

            break;

           default :

            执行语句;

            break;

          }

        switch语句的特点:
          1、switch语句选择的类型只有四种:byte,short,int,char。

          2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。

          3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。

          4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

          5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。

        也用switch演示一下刚刚的月份得到季节的题目吧:

     1 static void switchDemo(int month)
     2     {
     3         switch(month)
     4         {
     5             case 3:
     6             case 4:
     7             case 5:
     8                 System.out.println(+month+"月是春季!");
     9                 break;
    10             case 6:
    11             case 7:
    12             case 8:
    13                 System.out.println(+month+"月是夏季!");
    14                 break;
    15             case 9:
    16             case 10:
    17             case 11:
    18                 System.out.println(+month+"月是秋季!");
    19                 break;
    20             case 12:
    21             case 1:
    22             case 2:
    23                 System.out.println(+month+"月是冬季!");
    24                 break;
    25             default :
    26                 System.out.println("没有"+month+"月,这个月份!");
    27                 break;
    28         }
    29     }

      定义的一个静态函数来实现的,为了在主函数中输出方便,输出的结果为:

      

      对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存,效率相对较高

    三、循环结构

      循环结构的关键词有:while、do-while、for;

      1、while语句的结构:

        while(条件表达式)

        {

          执行语句;

        }

        一定要注意不要写while(true);这样的语句,后面的分号就是循环体,代表不执行任何语句,这个循环就成了死循环,后面的{执行语句;}就变成了局部代码块

      2、do-while语句的格式:

        do

        {

          执行语句;

        }while(条件表达式)

        dowhile语句的特点:无论条件是否满足,循环体至少执行一次。while如果条件不满足,循环体一次都不会执行。

      3、for语句的格式;

        for(初始化表达式;循环条件表达式;循环后操作表达式)

        {

          执行语句;

        }

        for里面的三个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。

      接下来介绍一种比较复杂的for循环,就是for循环嵌套。

      简单来说就是在循环中还要执行循环操作。在生活中很常见,比如9*9乘法口诀,两个乘数都分别从1增加到9,就需要双重循环来操作。下面演示一下乘法口诀标的代码:

     1 static void doubleForDemo(int number)
     2     {
     3         for(int i=1;i<=number;i++)
     4         {
     5             //j<i作为循环判断条件可以控制每次循环要操作的数
     6             for(int j=1;j<=i;j++)
     7             {
     8                 System.out.print(j+"*"+i+"="+j*i+"	");
     9             }
    10             //每次循环一轮后打印回车换行
    11             System.out.println();
    12         }
    13     }

      代码中的" "是一个转义字符,也就是制表符。还有其他的一些转义字符: :回车,:退格, :回车符。

      输出结果为:

      

    四、其他控制语句

      break(跳出),continue(继续)。 

      break语句应用于跳出当前循环;

      continue语句是结束本次循环继续下次循环。

      注意:这两个语句离开循环的应用范围,存在是没有意义的。

      这个两个语句单独存在,下面都不可以有语句,因为执行不到,编译会出错!

      我们可以通过一个小练习来熟悉一下break和continue。

     1 //求10以内的前三个奇数。
     2     static void breakAndContinue()
     3     {
     4         int count=0;
     5         for(int i=0;i<10;i++)
     6         {            
     7             if(i%2==0)
     8                 continue;//如果是偶数则结束本次循环继续下次循环。
     9             if(count++>=3)//如果是奇数则判断是第几次,如果超过第三个奇数则终止循环
    10                 break;
    11             System.out.println(i);
    12         }
    13     }

    结果如下:

      

    流程控制的总结到这里就结束了,要想写好代码,流程控制也是必须要牢牢掌握的。

    继续努力加油!为了明天更好的自己。

  • 相关阅读:
    问题:sqlserver 跨服务器连接;结果:Sql Server 跨服务器连接
    SpringBoot之Servlet、Filter、Listener配置
    spring boot 使用@ConfigurationProperties
    Mysql字段属性应该尽量设置为not null
    微服务—ELK分布式日志框架
    微服务—分布式服务追踪sleuth和zipkin
    微服务—熔断器Hystrix
    @RequestBody和@ResponseBody的使用情形以及RestTemplate的http报文转换
    application/x-www-form-urlencoded和multipart/form-data
    基于JWT的token身份认证方案
  • 原文地址:https://www.cnblogs.com/dengzhenyu/p/4825804.html
Copyright © 2011-2022 走看看