本帖最后由 海螺螺 于 2020-1-25 16:08 编辑

索引贴:http://www.mcbbs.net/thread-138969-1-1.html
前面我们学习了条件语句,这一章,我们来说说循环语句

for循环语句

代码示例
  1. public class book {
  2.         
  3.         public static void main(String[] args){
  4.                 for(int a=0;a<=10;a++){
  5.                         System.out.print(a);
  6.                         
  7.                 }
  8.         }
  9.         
  10.          
  11. }
复制代码
输出是
012345678910
这个语句是什么意思?
我们先申明一个变量a并给a赋值为0(声明和初始化),然后判断,a<=10吗?(条件表达式)是的,那么执行下面的语句,不是,跳出循环。在执行完打印a(System.out.println(a);)的语句后,执行a++(循环表达式)(不明白什么意思的看运算符)。这里是a++或者是++a都不影响。
变量可以不再for的语句中声明吗?
答案可以。就像下面
  1. public class book {
  2.         
  3.         public static void main(String[] args){
  4.                 int a=0;
  5.                 for(;a<=10;a=a+2){
  6.                         System.out.print(a);
  7.                         
  8.                 }
  9.         }
  10.         
  11.          
  12. }
复制代码
有人能告诉我输出是什么吗?
0246810
for的嵌套
如果我的循环体是另一个循环会怎样?
示例代码
  1. public class book {
  2.         
  3.         public static void main(String[] args){
  4.                 int a=0;               
  5.                 for(;a<6;a++){
  6.                         for(int b=a;b<6;b++){
  7.                                 System.out.print("⑨");
  8.                         }
  9.                         System.out.println();
  10.                 }
  11.         }
  12.         
  13.          
  14. }
复制代码
说一个东西,打印的代码System.out.print();System.out.println();的区别,第一个是直接打印,后面的则是打印后在换行。
那么运行上面的代码会出现一个什么东西?

⑨⑨⑨⑨⑨⑨
⑨⑨⑨⑨⑨
⑨⑨⑨⑨
⑨⑨⑨
⑨⑨


没错。。。一个⑨的倒金字塔=。=


讲完了for,我们来说说另一个循环语句。
while
示例代码
  1. public class book {
  2.         
  3.         public static void main(String[] args){
  4.                 int a=0;
  5.                 while(a<10){
  6.                         a++;
  7.                         System.out.print(a);
  8.                         
  9.                 }
  10.                
  11.         }
  12.         
  13.          
  14. }
复制代码
输出12345678910
看到它和for的区别了吗?
while对变量的声明和循环语句都不是它的参数。
如果我上面的代码a++换到打印语句的后面输出什么?
012345678910
如果我们将a++删了呢?它会无限循环下去。
while有嵌套吗?
当然有
  1. public class book {
  2.         
  3.         public static void main(String[] args){
  4.                 int a=0;
  5.                 while(a<5){
  6.                         int b=a;
  7.                         while(b<5){
  8.                                 System.out.print("⑨");
  9.                                 b++;
  10.                         }
  11.                         
  12.                         System.out.println();
  13.                         a++;
  14.                 }
  15.                
  16.         }
  17.         
  18.          
  19. }
复制代码
输出不用我说了吧?

大家发现没有?while语句都是先判定后执行(实际上for也是),能不能让它先执行在循环的呢?
有,那就是
do...whlie
代码示例
  1. public class book {


  2.         public static void main(String[] args){
  3.                 int a=0;
  4.                 do
  5.                 {
  6.                         System.out.print(a);
  7.                         a=a+3;
  8.                         

  9. }
  10.                 while(a<13);
  11. }


  12. }
复制代码
输出是
036912