3.分支结构与循环结构

1 程序结构

  程序结构分为顺序结构、分支结构、循环结构。分支结构有:if结构,if....else结构if...else if....else ,if...else结构,switch结构;循环结构有:while循环,do....while循环,for循环。

 

2 分支结构

  ①if结构  语法:

  if(布尔表达式){

     //语句;

  }

  执行过程:如果布尔表达式为true执行其下语句,布尔表达式为false时不执行其下语句。

  {}可以省略,如果省略将执行第一个语句块。为了程序的可读性推荐不要省略{}

  ②if...else结构 语法:

  if(布尔表达式){

      //语句1

  }else{

     //语句2;

  } 

  执行过程:如果布尔表达式值为true,执行语句1,否则执行语句2.

  {}也是可以省略的,省略之后只执行第一个语句块。

示例1:根据用户输入的年份,加上一个[0,10]随机数后,判断该年是否为闰年。

  分析:

  1.获取用户输入的年份:Scanner

  2.产生一个[0,10]之间的随机整数:Math.random()-->(0,1)之间的随机小数

  3.判断该年是为闰年,闰年的判断条件:能被4整除并且不能100整除;或者能被400整除。

  public class TestIfElse2{

    public static void main(String[] args){

      Scanner input = new Scanner(System.in);

      System.out.println("请输入一个年份:");

      int year = input.nextInt();

      //产生[0,10]之间的随机整数

      int random = (int)(Math.random()*11);

      year = year+random;

      //判断是否为闰年

      if((year%4==0&&year%100!=0)||year%400==0){

        System.out.println(year+"为闰年,共366天!");

      }else{

      System.out.println(year+"为平年,共365天!");

      }

    }

  }

示例2:(if嵌套)

  if嵌套:一个if语句包含了其他的if语句。

  if(条件1){

    if(条件2){

      //语句;

    }

  }

 

  ③if....else if....else结构 语法:

  if(条件1){

     //语句1;

  }else if(条件2){

     //语句2;

  }else if(条件3){

    //语句3

  }....{

  }else{

    //语句N;

  }

  执行过程:先判断条件1是否成立,如果条件1成立执行语句1并跳出条件结构;如果条件1不成立继续判断其下的条件2,如果条件2成立执行语句2....,所有条件都不成立执行else中语句N.

  注意:条件的位置有可能影响执行结构,条件位置一般需要满足从范围小的条件到范围大的条件逐次摆放。

  ④switch结构

  switch可以代替多重if条件结构中等值判断。

  语法:

  switch(表达式){

      case 值1:

    语句1;

         [break];

      case 值2:

    语句2;

         [break];

     ....

     default

    语句N;

         [break];

  }

  执行过程:将表达式的值与case中的常量值挨个进行比较,如果匹配成功将执行其下语句,直到遇到break关键字跳出switch结构。

  注意:

  1)swtich中传入的表达式可以是byte,short,int,char,从JDK1.7以后支持String类型

  2)case后的常量值不能重复

  3)case语句中的break是可以省略的,但如果省略break将出现case穿透。

  4)default语句也是可以省略的。

3 循环结构

  如果遇到需要反复做的事情,可以利用循环进行解决。

  ①while循环 语法:

  while(布尔表达式){

     //循环体

  }

  执行过程:

  步骤1:先判断布尔表达式值是否为true,如果为true进入步骤2

  步骤2:执行while中循环体,执行结束后回到步骤1

  注意:检查循环是否能退出(检查循环条件是否不满足的时候)

  特点:先判断,后执行,有可能一次都不执行。

 

  ②do...while循环 语法:

  do{

     //循环体;

  }while(布尔表达式);

  执行过程

  步骤1:先执行循环体,进入步骤2

  步骤2:判断布尔表达式是否为true,如果值为true,执行步骤1,否则退出循环。

  特点:先执行,后判断。执行会执行1次。

 

  ③for循环 语法:

  for(表达式1;表达式2;表达式3){

      //循环体;

  }

  表达式1:循环变量的初始化,只会执行1次

  表达式2:循环条件

  表达式3:更改循环变量(步进)

  注意:从语法的角度上说表达式1,表达式2,表达式3都可以省略,分号不能省略。但是如果省略了表达式2和表达式3经常会造成死循环。终止执行:ctrl+c

  特点:先判断,后执行。有可能一次都不执行。

 

  执行过程:

  步骤1:先执行表达式1进行循环变量的初始化工作

  步骤2:执行表达式2进行循环条件的判断,如果条件为true,执行步骤3,否则退出循环。

  步骤3:执行循环体;

  步骤4:执行表达式3进行更改循环变量,然后执行步骤2。

 

4 break和continue

    ①break关键字可以用于switch结构和循环结构

  作用: 1.如果用于switch结构,跳出当前的case语句

      2.如果用于循环结构中,跳出当前循环结构。

 ②continue关键字只能用于循环结构。

  作用:跳过本次循环,重新开始下一趟循环。

 

5 return

  可以使用return关键字结束当前函数的执行。

  在函数中只要遇到了return关键字,终止当前函数(方法),并回调函数(方法)的被调用处。

 

posted @ 2017-05-30 23:48  Nicepanda  阅读(2006)  评论(0编辑  收藏  举报