03.循环结构

1.循环:重复性做某件事。作用:减化代码,提高复用性

2.循环结构的组成部分

2.1:初始化语句:要作循环前的准备语句。
2.2:循环条件(判断语句):循环要执行时满足条件。
2.3:条件叠加(控制语句):改变循环的条件
2.4:循环体:循环要做的事

3.for循环:解决先判断后执行,循环次数固定的重复性操作问题

3.1:语法:for(初始化语句1;循环条件2;条件叠加3){
循环体;
}

for循环.png

3.2:执行流程:先执行初始化语句1,再判断循环条件2,如果循环条件2为false,就跳出for循环结构,执行之后语句;如果循环条件2为true,就执行循环体,再执行条件叠加3,重复蓝色字体部分。
3.3:结构特点:
3.3.1:for循环结构的初始化语句1有且仅执行一次;循环条件2可以执行一次到多次;条件叠加3和循环全可以执行0次到多次。
3.3.2:for循环结构中小括号中两个分号一定不能省略。
3.3.3:for循环结构初始化语句1不能直接省略,如果要省略可以将初始化语句1写在for循环结构前面;循环条件2直接可以省略,省略后就变成死循环;条件叠加3直接省略,就变成死循环,如果想省略条件叠加3又不会变成死循环;for循环结构三个条件可以同时省略,只是死循环。
3.3.4:for循环结构的初始化语句1和条件叠加3可以由一到多个式子组成,式子之间用逗号分隔。

  eg:for(int i=1;i<=100;i++){
​          System.out.println("第"+i+"次good good study,day day up");
​      }

4.while循环:解决先判断后执行,循环次数不固定

4.1:语法:
初始化语句;
while(循环条件){
循环体;
叠加条件;

while循环.png

4.2:执行流程:先执行初始化语句,再判断循环条件,如果循环条件为false,跳出while循 环,执行之后的语句;如果循环条件为true,就执行循环体和叠加条件,然 后再重复蓝色字体部分。
4.3:结构特点:while循环结构中,初始化语句有且仅执行一次,循环条件可以执行1次到多 次,循环体和叠加条件可以执行0次到多次。

      eg:public static void main(String[] args){
      //初始化语句
      int saveMoney=0;//存款
      int save=3000;//每个月要存的钱数
      int month=0;
      while(saveMoney<=10000000){
          //循环体
          saveMoney=saveMoney+save;
          //叠加条件
          month++;
          save=save+1000;
      }
      System.out.println(month+"个月后成为千万富翁,共用"+(month/12)+"年");
 }

5.do-while循环:解决先无条件执行一次循环体,再判断再执行的重复性问题

5.1:语法:
初始化语句;
do{
循环体;
叠加条件;
}while(循环条件);

do-while循环.png

5.2:执行流程:先执行初始化语句,然后执行循环体和叠加条件,再执行循环条件,如果循环 条件为false,就跳出循环结构,执行之后的语句;如果循环条件为true,就执行 循环体和叠加条件,再重复蓝色字体部分。
5.3:结构特点:do-while循环结构初始化语句有且仅执行一次,循环体和叠加条件至少执行一 次,循环条件至少执行一次。

      eg:public static void main(String[] args){
      //获得具有从键盘上接收数据的能力
      Scanner input=new Scanner(System.in);
      //初始化语句
      String result="";
      do{
          //循环体
          System.out.println("编码考试");
          //循环叠加
          System.out.println("考试是否合格?(y/n)");
          //从键盘上接收数据并存在变量中
          result=input.next();
      }while(!result.equals("y"));
  }

6.for VS while VS do-while

6.1:能用for循环解决的问题都可以用while循环解决;能用while循环解决的问题都可以用for 循环解决。一般解决先判断后执行,循环次数固定的重复性问题,首选for循环。
一般解决先判断后执行,循环次数不固定的重复性问题,首选while循环。
6.2:能用for循环或者while循环解决的问题,不一定能用do-while循环解决。
能用do-while循环解决的问题,都可以用for循环或者while循环解决。
6.3:只要是有重复性的操作,就要用循环结构;只要是先执行后判断的重复性问题就用do- while循环结构,先判断后执行,循环次数固定的重复性问题,首选for循环,先判断 后执行,循环次数不固定的重复性问题,首选while循环

7.嵌套循环结构:在一个循环结构的大括号中完整的包含了另一个循环结构

7.1:循环结构的嵌套可以是多层,嵌套要正确。一般情况常用两层嵌套的循环结构。
7.2:在嵌套循环结构中,外层循环结构循环一次,内层循环结构要循环完。(内层循环其实是 外层循环的循环体中一部分)

eg:public static void main(String[] args){
  //获得具有从键盘上接收数据的能力
  Scanner input=new Scanner(System.in);
  //接收三个班
  for(int j=1;j<=3;j++){
      System.out.println("请输入第"+j+"班的成绩");
      //从键盘上接收一个班四名学员的成绩
      for(int i=1;i<=4;i++){
          System.out.println("请输入第"+i+"名学员的成绩");
          double score=input.nextDouble();
      }
  }
}

8.break:跳出结构。只能用于switch结构和循环结构中

9.1:break的作用:用在switch结构中,跳出switch结构。
用在循环结构中,跳出当前循环结构。

  eg:public static void main(String[] args){
  //获得从键盘上接收数据的能力
  Scanner input=new Scanner(System.in);
  for(int j=1;j<=3;j++){
      System.out.println("请输入第"+j+"班的成绩:");
      for(int i=1;i<=4;i++){
          System.out.println("请输入第"+i+"名学员的成绩:");
          double score=input.nextDouble();
          //判断成绩是否符合要求,不符合要求停止当前班级的录入,
                 //接着录入下一个班
          if(score>100||score<0){
              break;//跳出内层循环结构
          }
      }
      System.out.println();
  }
}

9.2:break作标记的用法:跳出作标记的指定结构
语法:标记名 要跳出的结构;
break 标记名;

      eg:public static void main(String[] args){
      //获得从键盘上接收数据的能力
      Scanner input=new Scanner(System.in);
      a:for(int j=1;j<=3;j++){
          System.out.println("请输入第"+j+"班的成绩:");
          for(int i=1;i<=4;i++){
              System.out.println("请输入第"+i+"名学员的成绩:");
              double score=input.nextDouble();
              //判断成绩是否符合要求,如果不符合要求就终止录入
              if(score<0||score>100){
                  break a;//跳出标记指定的外层循环结构
              }
          }
          System.out.println();
      }
  }

9.continue:只能用在循环结构中。结束当次循环,进入下一次循环

eg:public static void main(String[] args){
      //获得从键盘上接收数据的能力
      Scanner input=new Scanner(System.in);
      for(int i=1;i<=4;i++){
          System.out.println("请输入第"+i+"名学员的成绩:");
          double score=input.nextDouble();
          //第一种:用continue实现
          if(score>100||score<0){
              continue;//结束当次循环,进入下一次循环
          }
          System.out.println("成绩录入成功");
          /*第二种:用if结构实现
          if(score<=100&&score>=0){
              System.out.println("成绩录入成功");
          }*/
      }
  }

10.return:可以在方法的任何地方用。作用:结束当前方法;线束当前的方法的同时返回一个结果

注意:return关键字后面不能直接写代码,是永远无法执行的代码会报错。

eg:public static void main(String[] args){
  //获得从键盘上接收数据的能力
  Scanner input=new Scanner(System.in);
  for(int j=1;j<=3;j++){
      System.out.println("请输入第"+j+"班的成绩:");
      for(int i=1;i<=4;i++){
          System.out.println("请输入第"+i+"名学员的成绩:");
          double score=input.nextDouble();
          //判断成绩是否符合要求,如果不符合要求就终止录入
          if(score<0||score>100){
              return;//结束main方法
          }
      }
      System.out.println();
  }
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容

  • 1 顺序语句 语句:使用分号分隔的代码称作为一个语句。 注意:没有写任何代码只是一个分号的时候,也是一条语句,...
    哈哈哎呦喂阅读 381评论 0 0
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,863评论 0 2
  • Day01 class 例子{ public static void main(String[] args){ ...
    周书达阅读 1,032评论 0 0
  • 第一章 初识javaJAVA 第一讲:什么是程序?:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的...
    人子日月几点阅读 517评论 0 1
  • 几个问题 张三oracle考试成绩未达到自己的目标。为了表明自己勤奋学习的决心,他决定写一百遍“好好学习,天天向上...
    蛋炒饭_By阅读 776评论 0 0