黑马程序员—Java语言基础(程序流程控制-if、switch、for、while、do while、break、continue)

时间:2021-02-07 00:37:24
------- android培训java培训、期待与您交流! ----------

 

程序流程控制:

  程序流程控制的结构有:

l  判断结构

l  选择结构

l  循环结构

l  If  switch  do while   while  for

l    这些语句什么时候用?

l    1)、当判断固定个数的值的时候,可以使用if,也可以使用switch

l    但是建议使用switch,效率相对较高。

l  switch(变量){

l     case :要执行的语句;break;

l     …

l     default:要执行的语句;

l  }

l   工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了

l             就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;

l   细节:1):break是可以省略的,如果省略了就一直执行到遇到break为止;

l       2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;

l       3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expressioncase中的value是否匹配,程序会从default开始执行直到第一个break出现。

l    2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if

l    3)、当某些语句需要执行很多次时,就用循环结构。

l    whilefor可以进行互换。

l    区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。

 

判断结构:

黑马程序员—Java语言基础(程序流程控制-if、switch、for、while、do while、break、continue)

if语句特点:

      a,每一种格式都是单条语句。

      b,第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中。

      c,条件表达式无论写成什么样子,只看最终的结构是否是true或者 false;

代码示例:

public classTestIf

{

      public static void main(String[] args)

      {

           //age <= 6时,打印出"没上学"

           //age <= 12时,打印出"上小学"

           //age <= 15时,打印出"上初中"

           //age <= 18时,打印出"上高中"

           //age <= 22时,打印出"上大学"

           //若都不满足,则打印出"大学已毕业"

           int age = 99;

           if (age <= 6)

           {

                 System.out.println("没上学");

           }

 

           else if (age <= 12)

           {

                 System.out.println("上小学");

           }

 

           else if (age <= 15)

           {

                 System.out.println("上初中");

           }

 

           else if (age <= 18)

           {

                 System.out.println("上高中");

           }

 

           else if (age <= 22)

           {

                 System.out.println("上大学");

           }

 

           else

           {

                 System.out.println("大学已毕业");

           }

          

      }

}

 

switch语句

格式:

switch(表达式)

{

      case 取值1:

           执行语句;

           break

      case 取值2:

           执行语句;

           break

      …...

      default:

           执行语句;

           break

}

switch语句特点:

     a,switch语句选择的类型只有四种:byteshortint char

      b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default

      c,结束switch语句的两种情况:遇到break,执行到switch语句结束。

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

代码示例:

public classTestSwitch

{

      public static void main(String [] args)

      {

           int i = 1;

           switch (i)

           {

             case 0:

                  System.out.println("zero");

                  break;

             case 1:

                  System.out.println("one");

                  break;

             default:

                  System.out.println("default");

                  break;

            }

      }

}

 

循环结构:

黑马程序员—Java语言基础(程序流程控制-if、switch、for、while、do while、break、continue)

格式:

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

{

      执行语句;

}

注:

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

        b,whilefor可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。

        c,最简单无限循环格式:while(true), for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

代码示例:

For语句:

public classForTest

{

      public static void main(String[] args)

      {

           int x = 1;

           int y = 1;

           for(System.out.println("a");x < 3; System.out.println("c"), y++)//for括号里多条执行语句用 “,”隔开

           {

                 System.out.println("d");

                 x++;

                 System.out.println("y="+y);

           }

           //执行结果adcdc

          

           /* 无限循环的最简单表现形式。

            * for(;;){}

            *

            * while(){true}

            * */

      }

 

}

For循环的嵌套示例:

public classForForDemo

{

      public static void main(String[] args)

      {

           for(int x = 0; x < 3; x ++)

           {

                 for(int y = 0; y < 4; y++)

                 {

                      System.out.print("ok");

                 }

                 System.out.println();//换行功能

           }

           System.out.println("_______________________");

          

           /* 对于打印矩形:外循环控制行数,内循环控制每一行的列数,也就是每一行元素的个数。

            * */

          

           /* 

            

            *****

            ****

            ***

            **

            *

            发现图形有很多行,每一行有很多列。

            要使用嵌套循环。原理:形象说法:大圈套小圈。

            

            尖朝上,可以改变条件语句,让条件随着外循环变化。

            

            尖朝下,可以改变初始化值,让初始化值随着外循环变化。

            */

          

           for(int x = 0; x < 10;x++)//x<5:因为外循环控制行数,一共5行。  

           {

                 for(int y = 0; y < x; y++)

                 {

                      System.out.print("*");

                 }

                 System.out.println();

           }

      }

 

}

Whiledo while语句:

public classWhileDemo

{

      public static void main(String[] args)

      {

           /*定义初始化表达式;

            * while(条件表达式)

            * {

            *        循环体(执行语句);

            * }

            * */

           int x = 1;

           while(x <= 100)

           {

                 System.out.println("x="+x);

                 x += 2;

           }

          

           int y = 1;

           do

           {

                 System.out.println("y="+y);

                 y++;

           }

           while(y <= 100);

          

           /*while:先判断条件,只有条件满足才执行循环体。

            * do while:先执行循环体,在判断条件,条件满足,再继续执行循环体。

            * 简单一句话:do while:无论条件是否满足,循环体至少执行一次。

            * */

      }

 

}

 

其他流程控制语句:

break:作用于switch ,和循环语句,用于跳出,或者称为结束。

break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号

 

continue:只作用于循环结构,继续循环用的。

作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。

注:

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

b,这个两个语句单独存在下面都不可以有语句,因为执行不到。

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

d,标号的出现,可以让这两个语句作用于指定的范围。

代码示例:

public classOtherDemo

{

      public static void main(String[] args)

      {

           //break; 语句

           w:for(int x = 0 ; x < 3; x++)

           {

                 for(int y = 0; y < 4; y++)

                 {

                      System.out.println("x="+x);

                       break w;

                 }

           }

           System.out.println("------------------------------------------------------------------");

          

           //continue; 只能作用于循环结构.继续循环,结束本次循环,继续下一次循环。

           for(int x = 1; x <= 10; x++)

           {

                 if(x % 2 == 1)

                      continue;

                 System.out.println("x="+x);

           }

           System.out.println("------------------------------------------------------------------");

          

          

           w:for(int x = 0 ; x < 3; x++)

           {

                 for(int y = 0; y < 4; y++)

                 {

                      System.out.println("x="+x);

                       continue w;

                 }

                

                 /* 记住:

                  * 1.breakcontinue语句的作用范围。

                  * 2.breakcontinue单独存在时,下面不可以有任何语句,因为都执行不到。

                  * */

           }

      }

 

}


 

------- android培训java培训、期待与您交流! ----------