黑马程序员:JAVA判断语句、选择语句、循环语句介绍

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

本文主要介绍JAVA中的if else语句、switch语句、for语句、switch语句及break语句、continue语句用法及注意点。

1.判断语句if else

  • 第一种形式:只有if
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class  IfDemo
    {
         public  static  void  main(String[] args)
         {
             int  x =  3 ;
             if  ( x >  2 )
             //若不带{}也可以执行,默认且仅执行if之后的第一条执行语句。
             {
                  System.out.println( "条件成立" );  //
             }
         }
    }
    以上例子中若3大于2,则输入 条件成立。
  • 第二种形式:if else
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class  IfElseDemo
    {
         public  static  void  main(String[] args)
         {
             int  x =  3 ;
             if  ( x >  3  )
                 System.out.println( "x大于3" );
             else
                 System.out.println( "x不大于3" );
         }
    }

    语句意思:若x>3则返回 x大于3,若x>3不成立,则返回x不大于3.
  • 第三种形式:if() else if() else
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    class  IfElseIfDemo
    {
         public  static  void  main(String[] args)
         {
             int  x =  3 ;
             if  ( x >  3  )
                 System.out.println( "x>3" );
             else  if  ( x <  3  )
                 System.out.println( "x<3" );
             else  if  ( x ==  3  )
                 System.out.println( "x=3" );
             else   //else语句不写也可以正常编译
                 System.out.println( "x是未知值" );
         }
    }

2.选择语句switch

  • switch基本用法
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    class  SwitchDemo
    {
         public  static  void  main(String[] args)
         {
             int  x =  3 ;
             switch  (x)  //x只支持byte、short、int、char、String(JAVA7开始支持String,但不能为null,否则编译会出错)
             {
                 case  1 :
                     System.out.println( "x=" + 1 );
                     break ;   //break的作用是结束并跳出当前语句(switch),作用范围为选择语句及循环语句。
                 case  2 :
                     System.out.println( "x=" + 2 );
                     break ;
                 case  3 :
                     System.out.println( "x=" + 3 );
                     break ;
                 default :   //当case都不满足时,执行default下的语句,也可以不写,那么就无结果。
                     System.out.println( "未找到具体值" );
                     break //此处的break可有可无,因为后面已经没有语句了
             }
         }
    }


  • default块在语句中的顺序可任意调换,若不放在最后,必须带上break;
  • 若case下的语句没有break终止,就算case满足条件,也会继续执行下面的语句,直到遇到break或者switch语句结束为止。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    class  SwitchDemo
    {
         public  static  void  main(String[] args)
         {
             int  x =  3 ;
             switch  (x)
             {
                 case  1 :
                 case  2 :
                     System.out.println( "不管x=1或者x=2,都输出这句话" );
                     break ;   //若x=1或者x=2,则到这里终止跳出
                 case  3 :
                     System.out.println( "满足条件" );
                     //break;  break被注释
                 case  4 :
                     System.out.println( "当case 3满足条件但没有break时,继续输出这里" );
                 case  5 :
                     System.out.println( "语句执行到这还是没遇到break,继续输出" );
                     break //执行到这里结束,跳出
                 default :
                     System.out.println( "默认输出值" );
             }
         }
    }

总结:switch主要注意点在于表达式支持的数据类型及break的用法。if主要是如果只有一条执行语句,可不用{}。

switch与if的区别:

  • switch语句不同于if语句的是switch仅能测试相等的情况,而if语句可计算任何类型的布尔表达式。即switch语句只能寻找case常量间某个值与表达式的值相匹配。
  • 在同一个switch语句中没有两个相同的case常量。
  • switch语句通常比if语句更有效(除了if分支非常少时,如第一下判断就为true时),当编译一个switch语句时,JAVA编译器将检查每个case常量并创造一个“跳转表”,这个表将用来在表达式值的基础上选择执行路径。因此,如果你需要在一组值中做出选择,switch语句将比与之等效的if-else语句块的多。编译器可以这样做是因为它知道case常量都是同类型的,所要做的只是将它与switch表达式的值比较是否相等。

3.循环语句之for语句

  • for语句结构
    for(表达式1; 表达式2; 表达式3)
    {
        循环体;
    }
  • 使用for循环嵌套打印靠边的三角形
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    /*
    *
    **
    ***
    ****
    */
    class  ForDemo
    {
         public  static  void  main(String[] args)
         {
             for ( int  x= 0 ; x< 4 ; x++)
             {
                 for ( int  y= 0 ; y<=x; y++)
                 {
                     System.out.print( "*" );
                 }
                 System.out.println();
             }
         }
    }

  • 使用for嵌套打印倒三角形
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    /*
    ****
    ***
    **
    *
    */
    class  ForDemo
    {
         public  static  void  main(String[] args)
         {
             for ( int  x= 0 ; x< 4 ; x++)
             {
                 for ( int  y=x; y< 4 ; y++)
                 {
                     System.out.print( "*" );
                 }
                 System.out.println();
             }
         }
    }

  • 使用for嵌套打印正三角形
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    /*
         *
        * *
       * * *
      * * * *
    * * * * *
    思路:
    1.上面图形由两个三角形组成,一个是左边由空格组成的尖在下三角形,一个是由“* ”组成的尖在上三角形。
    2.打印完左边后再同行上打印右边的三角形,之后换行执行连个三角形的第二行打印
    */
    class  ForDemo
    {
         public  static  void  main(String[] args)
         {
             for ( int  x= 0 ; x< 5 ; x++)
             {
                 //打印左边的空格倒三角形
                 for ( int  y=x+ 1 ; y< 5 ; y++)
                 {
                     System.out.print( " " );
                 }
                 //打印右边右*空格组成的尖在上三角形
                 for ( int  z= 0 ; z<=x; z++)
                 {
                     System.out.print( "* " );
                 }
                 System.out.println();
             }
         }
    }
  • 使用for嵌套语句打印九九乘法表
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /*
    1*1=1
    1*2=2 2*2=4
    1*3=3 2*3=6 3*3=9
    ...
    思路:
    1.被乘数与列相同,定义为y;成熟与行相同,定义为x
    2.外循环控制行,内循环控制列
    3.视1*1=1为一个个体,个体数随x的变化而变化,最大个数=x,即内循环根据y<=x执行
    4.被乘数及乘数最小值都为1,即x与y最小值为1.
    5.99乘法表共9行,外循环需执行9次,即外循环x<=9
    */
    class  JiuDemo
    {
         public  static  void  main(String[] args)
         {
             for ( int  x= 1 ;x<= 9 ;x++)
             {
                 for ( int  y= 1 ;y<=x;y++)
                 {
                     System.out.print(y+ "*" +x+ "=" +y*x+ "\t" );  //\t为制表符
                 }
                 System.out.println();
             }
         }
    }


总结:for的执行顺序为 表达式1->表达式2判断->若为true再执行循环体->表达式3->表达式2判断->循环体,知道判断为false停止循环。关于三角形打印的总结,外循环控制行,内循环控制列。

4.while、do while语句

  • while语法结构
    while (条件表达式)
    {
        循环体;
    }
  • do while语法结构
    do
    {
        循环体;
    }
    while(条件表达式);
  • while语句和do while语句的区别
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    class  WhileDemo
    {
         public  static  void  main(String[] args)
         {
             int  x =  3 ;
             while  ( x <  3  )
             {
                 System.out.println(x);
                 x++;
             //无结果
         System.out.println( "-------------------" );
         int  y =  3 ;
             do
             {
                 System.out.println(y);
                 y++;
             }
             while ( y <  3  );
             //结果为3
         }
    }

    总结:do while,先执行do里面的循环体,再判断条件是否满足,满足则继续循环;而while先判断条件是否满足,满足才执行循环体。

5.最简单的两种死循环

  • 最简单的for语句死循环 for(;;){},当条件表达式的默认值为true。
  • 最简单的while语句死循环 while(true){}

6.break和continue区别

  • break作用范围:选择结构和循环结构
  • continue作用范围:循环结构
  • continue特点:结束本次循环,继续下次循环。
  • break和continue单独存在时,下面不可以有任何语句,因为都执行不到。且要注意他们的作用范围。
---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值