Java循环结构

一.while循环

while循环先进行判断,再进行逻辑执行

1.由四部分组成:

  初始化:变量的初始化                                       int i = 1;

  条件判断:必须要求返回true或者false的值       while(i<100){

  循环体:具体要执行的逻辑代码         System.out.println(i);

  迭代变量:促使此循环结束           i++;}

2.在循环开始时,会计算一次布尔表达式的值,若条件为真,执行循环体。对于之后的每一次额外的循环,都会在开始前重新计算一次

3.语句中应有使循环趋向于结束的语句,否则会出现无限循环---死循环

  

二.do-while循环

do-while循环:先执行代码逻辑,再执行判断。及循环体至少执行一次

int a = 0;

do{

  System.out.println(a);

  a++;

}while(a<10);

  

三.for循环

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

2.语法规则:

  for(初始化:条件表达式:步进器) { 

    代码逻辑 

   }

3.注意事项:

  for循环执行顺序:初始化-->条件表达式-->代码逻辑-->步进器

4.for循环的好处:变量初始化的时候,for循环的作用域仅仅是当前for循环结构

        而while循环的作用域是从变量的定义开始到整个方法结束

  

四.嵌套循环

例如:打印九九乘法表

    for(int i=1;i<10;i++){

      for(int j=1;j<=i;j++){

        System.out.println(j + "*" + i + " = " + i * j + " ");

      }

      System.out.println();

    }

五.跳转语句

1.break:在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句(跳出当前循环)

2.continue:语句用于循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,进行下一次是否执行循环的判定

3.return:从当前方法退出,返回到调用该方法的语句处,并从该语句的下条语句处继续执行程序

  用途:①返回当前方法的返回值

     ②中止当前程序

六.递归算法

1.什么是递归?

  程序调用自身的编程技巧称为递归,一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法

2.递归的特点:

  ①一个问题可以被分解为若干层简单的子问题

  ②子问题和其上层问题的解决方案一致

  ③外层问题的解决依赖于子问题的解决

3.注意:在程序中能不使用递归就不要使用递归,使用递归的时候会加大资源的消耗,如果递归的层次较深会造成栈溢出

    如果不使用递归无法解决问题的话,就必须使用递归了,例如:输出某个磁盘目录下的所有文件名称

4.案例:(斐波那契数列)

  普通循环:                     递归:

  public static void main(String[] args){                           public static void main(String[] args){

    Scanner sc = new Scanner(System.in);       Scanner sc = new Scanner(System.in);

    System.out.println("请输入数列个数");       System.out.println("请输入数列个数");

    int count = sc.nextInt();               int count = sc.nextInt();

    int x = 1;                    for(int i=1; i<=count; i++){

    int y = 1;                      System.out.print(getNum(i) + " ");

    int z = 0;                    }

    for(int i=1; i<=count; i++){          }

      if(i==1 || i==2){             public static int getNum(int number){

        System.out.println(1 + " ");        if(number==1 || number==2){

      }else{                     return 1;

        z = x + y;                }else{

        x = y;                    return getNum(number-1)+getNum(number-2);

        y = z;                  }

        System.out.println(z + " ");      }

      }

    }

  }

原文地址:https://www.cnblogs.com/lyc-code/p/12462834.html