zoukankan      html  css  js  c++  java
  • java三大循环结构

    用于处理需要重复执行的操作;

    根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落我们称为循环体;

    while:事先不需要知道循环执行多少次;

    do  while:同上,只是至少要执行一次(先做,后判断)

    for:需要知道循环次数;

     

    循环结构(while & do while)

    while语句

    格式:

    while(条件表达式值为true)

    {

           执行语句;

    }

    do while语句

    格式:

    do

    {

           执行语句;

    }

    while(条件表达式值为true);

    我的总结:do while特点是无论条件是否满足,循环体至少被执行一次。

    循环里的条件表达式不能直接写false或直接写结果是false的表达式,不过可以使用变量来传递false值;

    循环结构(for)

    格式:

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

    {

                  执行语句;(4)

    }

           执行顺序:(1) → (2) → (4) → (3) → (2) → (4) → (3)

    备注:

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

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

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

    Eg:

    用三种循环控制求出100以内前5个3的倍数的数字;

    class while

    {

           public static void main(String[] args)

           {

                  int i = 1,k = 0;

                  while(i<=100)

                  {

                         if(i%3==0)

                         {

                         if(k<5)

                         System.out.println(i);

                         k++;

                         }

                         i++;

                  }

           }

    }

    class dowhile

    {

           public static void main(String[] args)

           {

                  int i = 1,k = 0;

                  do{

                         if(i%3==0)

                         {

                         if(k<5)

                         System.out.println(i);

                         k++;

                         }

                         i++;

                  }

                  while(i<=100);

           }

    }

    class for

    {

           public static void main(String[] args)

           {

                  int i = 1,k = 0;

                  for(;i<100;i++)

                  {

                         if(i%3==0&&k<5)

                         {

                         System.out.println(i);

                         k++;

                         }

                  }

           }

    }

  • 相关阅读:
    zoj 3627#模拟#枚举
    Codeforces 432D Prefixes and Suffixes kmp
    hdu 4778 Gems Fight! 状压dp
    CodeForces 379D 暴力 枚举
    HDU 4022 stl multiset
    手动转一下田神的2048
    【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律
    poj 3254 状压dp
    C++中运算符的优先级
    内存中的数据对齐
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11130545.html
Copyright © 2011-2022 走看看