• java基础3 循环语句:While 循环语句、do while 循环语句、 for 循环语句 和 break、continue关键字


    一、While循环语句

    1、格式

      while(条件表达式){
        执行语句;
      }

    2、要点

      1,先判断后执行
      2,循环次数不定
      3,避免死循环

    3、举例

    题目1:输出0-100之间的所有数

     1 class Demo3
     2 {
     3     public static void main(String[] args){
     4         //输出0-100之间的所有数
     5         int i=1;
     6         while(i<100){
     7             System.out.println(i);
     8             i++;
     9         }
    10     }
    11 }

    题目2:猜数字游戏

     1   public static void main(String[] args) {
     2     //解析:Math.random()返回一个double类型的0.0~1.0之间的数值; Math.random()*100返回结果:0.0~100.0(不包括0.0和100.0); (int)(Math.random()*100)+1,返回结果:1~100(包括1和100)
     3       int num = (int)(Math.random()*100)+1; // 在1~100之间,生成一个随机数。 
     4       Scanner sc = new Scanner(System.in); //创建一个扫描器对象  
     5       int guessNum = -1;  // guessNum 的初始化值不能在1~100之间(包括1和100)
     6      
    7
    while (guessNum != num) { 8 System.out.println("请输入1-100之间整数"); 9    
    10 int guessNum = sc.nextInt(); //扫描你输入的整形对象 11 if (guessNum == num) { 12 System.out.println("中啦"); 13 } else if (guessNum < num) { 14 System.out.println("小啦"); 15 } else { 16 System.out.println("大了"); 17 } 18 } 19 }

     

    二、do ... while循环语句

    1、格式

      do{

           执行相应的代码;

      }while(判断条件);

    2、要点

      1,先执行后判断
      2,至少执行一次
      3,最后的分号勿漏

    3、while循环语句和do-while循环语句的区别:

      1)while循环语句,是先判断,再执行相应代码
      2)do-while循环语句,先执行相应的代码,再判断

    4、例子

     1 public static void main(String[] args) {
     2     int x = 0, y = 0;
     3     do {
     4         System.out.println(x);
     5         x++;
     6     } while (x < 0);//注意一个细节:do...while 后面的分号
     7     // do...while:不管是否满足循环条件,do都会先执行一次。
     8     while (y < 0) {
     9         System.out.println(y); //条件不满足,结果只有x的值输出
    10         y++;
    11     }
    12 }

    题目2:猜数字游戏

     1  public static void main(String[] args) {
     2           // 记录用户输入的数字
     3          int guess = -1;
     4          // 记录用户输入次数
     5          int count = 0;
     6          // 生成1-100之间随机数
     7          int num = (int) (int)(Math.random()*100)+1;// 在1~100之间,生成一个随机数。
     8        Scanner sc = new Scanner(System.in);//创建一个扫描器对象 
     9  
    10          // 循环猜数字
    11          do {
    12                System.out.println("请输入1-100之间的数字");
    13                guess = sc.nextInt();//扫描你输入的整形对象
    14               if (guess > num) {
    15                     System.out.println("哥们,太大了");
    16               } else if (guess < num) {
    17                     System.out.println("哥们,太小了");
    18               } else {
    19                     System.out.println("恭喜您,中啦");
    20               }
    21                 count++;
    22          } while (guess != num); //注意一个细节:do...while 后面的分号
    23          System.out.println("你猜测的数字是:" + num + "猜测了" + count + "次");
    24   }

     

    三、for 循环语句(和增强for循环)

    1.格式

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

        执行语句;

      }

    2、for while的区别

    while循环和for循环的对比:
      1、循环类型:
        while循环是不确定性循环(循环次数不明确)
        for循环式确定型循环(循环次数明确)
      2、相互转换:
        while循环和for循环可以相互转换
      3、适用场合:
        当循环次数确定时,一般使用for循环
        当循环次数不确定时,一般使用while循环
     1 public static void main(String[] args) {
     2     for (int x = 0; x < 5; x++) {
     3         System.out.println("hello java");
     4     }
     5     System.out.println(x); 
     6     //x cannot be resolved to a variable
     7 
     8     int y = 0;
     9     while (y < 5) {
    10         System.out.println("hello world");
    11         y++;
    12     }
    13     System.out.println(y);
    14 }

    解析:

    x 为什么会找不到,注意了变量的作用域,也就是变量的作用范围。x 只在 for 循环的大括号内有效,出了这个区域,就无效了.在内存中就消失了。x消失后,仍要访问它,肯定会报错的。

    y 就不一样了,y 是定义在while 外的。while循环完毕仍有效  while的初始化 动作在外边,循环结束后y 仍然存在。

    当定义的y 只作为循环增量存在的话的,循环完毕后y就没有用了,但是y还是占着一块内存。所以,如果定义的变量只作为循环增量存在的话,就用for 循环可以节约内存。

    其实for while 是可以互换的。

    总结

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

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

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

    3、举例

    题目1:打印99乘法表

     1 class Demo1{
     2     
     3     public static void main(String[] args) {
     4         for (int x = 1; x <= 9; x++) {
     5             for (int y = 1; y <= x; y++) {
     6                 System.out.print(y + "*" + x + "=" + x * y + '	');  //  	:制表符,相当于Table键,一个	代表四个空格  
     7             }
     8             System.out.println(" ");
     9         }
    10     }
    11 }

    效果图:

    转义字符:
    
     表示接受键盘输入,相当于按下回车。
    
     表示换行。
    	  制表符,相当于Table键(四个空格)
     退格键,相当于Back Space
    ’  单引号
    ’’ 双引号
    \ 表示一个斜跨

    题目2:打印直角三角形

    1 public static void main(String[] args) {
    2     for (int x = 0; x < 5; x++) {
    3         for (int y = 0; y <= x; y++) {
    4             System.out.print("*");
    5         }
    6         System.out.println("");
    7     }
    8 
    9 }

    效果图

    题目3:打印倒直角三角形

    1 public static void main(String[] args) {
    2     for (int x = 5; x > 0; x--) {
    3         for(int y=x;y>0;y--){
    4             System.out.print("*");
    5         }
    6         System.out.println("");
    7     }
    8 }

    效果图

    4、增强for循环(也叫foreach循环)

          jdk1.5出现的新功能

     1)增强for循环的作用

          简化了迭代器的书写格式(注意:增强for循环底层还是使用了迭代器遍历)

     2)增强for循环的适用范围

          如果实现了Iterable接口或者数组对象都可以使用增强for循环.

     3)增强for循环的格式

    for(数据类型 变量名:遍历的目标对象名){
    
    }

     4)增强for循环需要注意的事项

          1、增强for循环底层也是使用迭代器获取的,只不过获取迭代器是由jvm完成,不需要我们获取迭代器,索引在使用增强for循环遍历元素的过程中不准使用集合对对象对集合元素经行修改
          2、迭代器遍历元素和增强for循环的区别:使用迭代器遍历元素时可以删除集合元素,而增强for循环遍历集合元素时,不能调用迭代器里面的remove方法删除元素.
          3、普通for循环与增强for循环的区别:普通for循环可以没有变量目标,而增强for循环一定要有变量目标

     1 public class Demo2 {
     2     public static void main(String[] args) {
     3         int[] arr={12,2,5,0};
     4 
     5     //普通for循环
     6         for (int i = 0; i < arr.length; i++) {
     7             System.out.println(arr[i]);
     8         }
     9 
    10     //增强for循环
    11         for (int i : arr) {
    12             System.out.println(i);
    13         }
    14     }
    15 }

    四、 breakcontinue关键字

    1、break关键字:break 语句用于终止最近的封闭循环或它所在的 switch 语句。控制传递给终止语句后面的语句(如果有的话)。

    适用:for循环 、 switch判断语句。

    要点:
      1,结束循环之用
      2,改变循环执行次数
      3,只跳出本循环

    break的用法:

    1. 单独使用。
    2. 与标签一起使用。(标签:即一个名字,满足标识符的条件即可)

    使用细节: 不要再break语句之后,编写其他语句,永远都执行不到,编译报错。

     

    2、continue关键字:语句将控制权传递给它所在的封闭迭代语句的下一次迭代(跳出本循环,执行下一次循环)

    适用于:while do while for循环语句

    要点:
      1,没有终止整个循环
      2,没有改变循环执行次数
      3,只在本层循环当中起作用

    使用细节:

       1. 如果continue出现在循环的末尾(最后一条语句),那么可以省略。

       2. 如果continue出现在循环的第一条语句,那么后面的语句都无法执行,所以编译报错。

       3. 可以结合标记使用。

     3、小结:

      break: 结束了一个循环
      continue:结束了一次循环
    如图所示:

     

    原创作者:DSHORE

    作者主页:http://www.cnblogs.com/dshore123/

    原文出自:http://www.cnblogs.com/dshore123/p/8656779.html

    欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

  • 相关阅读:
    【Django】Django REST Framework简单教程
    【SpringBoot | Druid】SpringBoot整合Druid
    【SpringBoot | Swagger】SpringBoot整合Swagger
    【Vue | ElementUI】Vue离开当前页面时弹出确认框实现
    【SpringBoot | Redis】SpringBoot整合Redis
    【评测机】评测时报错cc1plus: fatal error: /xx/xx/main.cpp: Permission denied compilation terminated.的解决方法
    Hello world!
    【续】将HUSTOJ备份数据并迁移至Ubuntu16.04
    将HUSTOJ备份数据并迁移至Ubuntu16.04
    【BZOJ2118】墨墨的等式【循环节做法】
  • 原文地址:https://www.cnblogs.com/dshore123/p/8656779.html
Copyright © 2020-2023  润新知