循环语句剖析--------while与for

循环结构:

while                             do while                            for

格式:

while (条件表达式)         

{

    循环体(执行语句);

}

注意:int x = 1;

      while(x<=2)

      {

      System.out.println(“x=”+x);

      x++;

      }

与   int x = 1;

     x++;

     while(x<=2)

     {

     System.out.println(“x=”+x);

     }

的区别是上面的只有两次循环而下面的则是无限循环,因为while下面的大括号会一直执行而不返回x++

do while 格式:

do

{

          循环体(执行语句)

}

while (条件表达式);

do while while的区别在于:do while无论条件是否满足,循环体至少执行一次。

for格式:

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

{

     执行语句;

}

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

    {

     System.out.println(“x=”+x);

}

执行流程图:

forwhile的区别: 如果变量只为控制循环次数作为循环增量而存在的话,为了节约内存用for语句更合适,其实forwhile可以互换。如:上图中的x出了for语句就不存在了

小知识点:

         变量有自己的作用域,对于for来讲,如果将用于控制循环的增量定义在for语句中,那么该变量只在for语句内有效,for语句执行完毕,该变量在内存中被释放。

         forwhile可以互换,如果需要定义循环增量,用for语句。

什么时候使用循环结构?

    当某些语句执行很多次时,就是用循环结构。

例:int x = 1;

for (System.out.println(”a”);x<3;System.out.println(“b”);System.out.prinntln(”c”),x++)

{

System.out.println(“d”);

}

打印结果是?

adcdc

走流程即可得出。

注意:条件表达式必须要有真假。for循环里面不一定都是int x = 1,只要是合法表达式就行。当有多个表达式时可以用逗号分开,如上例中的System.out.prinntln(”c”),x++for里面的初始化表达式可以不写,循环后的表达式也可以不写。

无限循环的最简单表现形式:for (;;){}   对于for,不写条件表达式默认就是turewhile的即是while (ture){}

例:获取1~10的和,并打印。

//1.定义变量用于存储不断变化的和。

int sum = 0;

//定义变量,记录住不断变化的被加的数

int x = 1;

//定义循环,重复加法的过程

while(x<=10)

{

sum = sum + x;

x++;

}

System.out.println(“sum=”+sum);

for语句表现形式(更合适):

int sum = 0;

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

{

sum += x;

}

System.out.println(”sum=”+sum);

例:1~100之间7的倍数的个数,并打印。

思路:1.先对1100进行循环(遍历)

      2.在遍历的过程中定义一个条件:只对7的倍数进行操作

      3.因为7的倍数不确定,只要符合条件,就通过一个变量来记录住这个变化的次数。

步骤:1.选择for语句

      2.再循环中定义判断,只要是7的倍数即可,使用if语句。条件“7的倍数:x%7=0

      3.定义变量,该变量随着7的倍数的出现而自增。

int count = 0;

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

{

if (x%7==0)

count++;

}

System.out.println(“count=”count);

总结(累加思想):原理是通过变量(如count)记录住每次循环操作后的结果(如count++)。通过循环的形式,进行累加动作。

(计数器思想):通过一个变量记录住数据的状态变化,也需要通过循环完成。

语句嵌套形式:其实就是语句中还有语句。

循环嵌套:循环中还有循环

如:for (int x = ;x<3;x++)

{

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

    {System.out.print(“*”);}

     System.out,prinrln();}

printprintln的区别在于后者会自动换行

上图打印的结果就是

   ****

   ****

   ****

总结:对于打印长方形,外循环控制的是行数,内循环控制的是每一行的列数,也就是一行中元素的个数。

例:打印         *****

                 ****

                 ***

                 **

                 *

                 *

                 * *

                 ***

                 ****

                 *****

                                                                                                            

 分析:发现图形有很多行,每一行有很多列。要使用嵌套循环。原理:大圈套小圈

解法:

class  ForFor01

{

public static void main(String[] args) 

{

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

{

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

{

System.out.print("*");

}

System.out.println();

}

}

}

class ForFor02

{

public static void main(String[] args)

{

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

{

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

{

System.out.print("*");

}

System.out.println();

}

}

}

不是规律的规律:尖朝上,可以改变条件,让条件随着外循环变化;尖朝下,可以改变初始化值,让初始化值随着外循环变化。

例:打印

1

12

123

1234

12345

class ForFor03

{

public static void main(String[] args)

{

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

{

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

{

System.out.print(y);

}

System.out.println();

}

}

}

例:打印

1*1=1

1*2=2  2*2=4

1*3=3  2*3=6  3*3=9

class ForFor04

{

public static void main(String[] args)

{

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

{

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

{

System.out.print(y+"*"+x+"="+y*x+"\t");

}

System.out.println();

}

}

}

2.6.4 其他流程控制语句:

break(跳出):只应用与选择结构和循环结构。

continue(继续):只应用于循环结构。

注意:

这两个语句离开应用范围,存在是没有意义的。这两个语句单独存在下面都不可以有语句,因为执行不到。continue语句是结束本次循环继续下次循环。标号的出现,可以让两个语句作用于指定的范围。

如:

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

{

if(x>1)

break;

System.out.println(“hello world”);p

}

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

{

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

{

System.our.println(“hello world”);

break w;

}

}

continue只能作用于循环结构,继续循环.特点:结束本次循环,继续下次循环。

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

{

if (x%2=1)

continue;

System.out.println(“x=”+x);

}

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

{

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

{

System.out.println(“x=”+x);

continue w;

}

}

例:打印

*

   *  *

  *  *  *

 *  *  *  *

*  *  *  *  *

class Test

{    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();

           }

     }

}  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值