第四篇 黑马程序员-循环语句

来源:互联网 发布:163邮箱是什么端口 编辑:程序博客网 时间:2024/05/22 10:59

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

一.
while语句
格式:
while(条件表达式)
{
  执行语句;
}
while的特点:先判断条件,只有条件满足才执行循环体
do...while:先执行循环体,在判断条件,条件满足,在继续执行循环体
小结:
do...while:无论条件是否满足,循环体至少执行一次。
二.
for循环语句
格式:
for(初始化表达式:循环条件表达式:循环后的表达式)

   执行语句;
 }
for循环语句执行的过程如下面代码所示,先初始化x=0,再判断x是否小于3,这里0<3,下面
就执行System.out.println("x="+x);然后再执行x++,即为1,然后再来判断1是否小于3,满足了,
所以就打印为1,然后执行x++,即为2,在判断2是否小于3,结果满足,所以打印2,再执行
x++,即为3,判断3是否小于3,结果不满足,即跳出循环。
public class ForDemo
{
 public static void main(String[] args)
 {
 for(int x=0;x<3;x++)
 {
   System.out.println("x="+x); 
   }

   }
}
注意:变量在定义的时候除了初始化值才能被使用以外,它还有个作用域的问题,即作用
范围,在以上for循环语句中,x是读到for语句以后创建出x,那么这个x就只在
{
   System.out.println("x="+x);
}
这里面有效,这就叫变量的作用域。而while循环中,变量是定义在循环语句外面,故可以。
小结:

如果变量只为循环的增量而存在,控制循环次数的话,用for循环,内存会相对于while
循环语句用的少一点,
看以下代码可知 System.out.println("x====="+x);这条语句打印会报找不到x
这个变量的错误。
public class ForDemo
{
 public static void main(String[] args)
 {
 for(int x=0;x<3;x++)
 {
   System.out.println("x="+x); 
 }
 System.out.println("x====="+x);
for循环里面的初始化表达式和循环后的表达式都可以不写,条件表达式如果也不写的话
那默认为true.
无限循环的最简单表现形式:
for语句是:
for(;;){}
while语句是:
while(true){}
练习获取1-10的和并打印
分析:
该和具有规律:后面的第一个加数总是前面两个数的和,且前面的第二个加数逐1递增都等于后面的第二个加数:
  0+1
  1+2
    3+3
      6+4
根据此规律编写代码如下:
public class ForTest2
{
 public static void main(String[] args)
 {
  //1.定义变量用于存储不断变化的和
  int sum=0;
  
        //2.定义变量。记录住不断变化的被加的数 
  int x=1;
  //定义循环,重复加法的过程
  while(x<=10)
  {
   sum=sum+x;
   x++;
 
  }
  System.out.println("sum="+sum);
  
 }
}
循环注意:哪些语句要参与运算,哪些语句不需要。
练习:1-100之间7的倍数的个数,并打印
分析:
1.先对1-100进行循环(遍历)通过循环的方式
2.在循环的过程中,定义条件,只对7的倍数进行操作
步骤:
1.定义循环语句,选择for语句
2.在循环中定义判断,只要是7的倍数即可,使用if语句。
条件:7的倍数,x%7==0
三.
嵌套循环,如下代码所示说一下以下嵌套循环的执行过程,for循环一执行,在内存中产生了一个
x变量块,初始化值为0,满足x<3以后,它就下来执行循环体,循环体还是一个循环for(int y=0;y<4;y++)
初始化一个变量y=0满足y<4,所以打印一次ok,然后读y++,所以必须循环体执行完毕以后再执行for(int
x=0;x<3;x++)
所以先打印了4次ok以后 for(int y=0;y<3;y++)结束,即循环体结束,然后读 for(int x=0;x<3;x++)
先x++,它的值为1,而1<3满足条件,故又执行循环体for(int y=0;y<4;y++),故打印12次ok.
public class ForForDemo {
 public static void main(String[] args)
 {
  for(int x=0;x<3;x++)
  {
   for(int y=0;y<4;y++)
   {
    System.out.println("OK");
   }
   System.out.println();
  }
 }

}
以上代码打印结果如下:                                     
okokokok
okokokok
okokokok
小结:
以上结果像个长方形,外循环控制的行数,内循环控制的每一行的列数,也就是一行中元素
的个数。
发现图形有很多行,每一行有很多列,故要使用嵌套循环
原理:形象说法,大圈套小圈。由于这里的列数在变化,就用
一个变量来记录这个列数的变化,如下代码表示:
public class ForForDemo {
 public static void main(String[] args)
 {
    int z=5;
  
  for(int x=0;x<5;x++)
  {
   for(int y=0;y<z;y++)
   {
    System.out.print("*");
    
   }
   System.out.println();
   z--;
  }
 }

}
尖朝上,可以改变条件,让条件随着外循环变化,尖朝下,可以初始化值
让初始化随着外循环变化。
break语句:跳出它所在的循环,在嵌套循环里,如果break要跳出某个循环的话,那就要对for 循环分别
起名,就要用到标号的概念,比如在FOR循环前面加w:等只要是合法的标识符都行以示区别。

 

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