一、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) {
  7. System.out.println("请输入1-100之间整数");
  8.    
    int guessNum = sc.nextInt(); //扫描你输入的整形对象
  9. if (guessNum == num) {
  10. System.out.println("中啦");
  11. } else if (guessNum < num) {
  12. System.out.println("小啦");
  13. } else {
  14. System.out.println("大了");
  15. }
  16. }
  17. }

二、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 是可以互换的。

总结

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

  B、while与for可以互换,区别在于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 + '\t'); // \t:制表符,相当于Table键,一个\t代表四个空格
  7. }
  8. System.out.println(" ");
  9. }
  10. }
  11. }

效果图:

  1. 转义字符:
  2. \r 表示接受键盘输入,相当于按下回车。
  3. \n 表示换行。
  4. \t 制表符,相当于Table键(四个空格)
  5. \b 退格键,相当于Back Space
  6. \’ 单引号
  7. \’ 双引号
  8. \\ 表示一个斜跨

题目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循环的格式

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

 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

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

java基础3 循环语句:While 循环语句、do while 循环语句、 for 循环语句 和 break、continue关键字的更多相关文章

  1. Java基础复习之二:运算符,键盘录入,流程控制语句,if语句,三元运算

    1.运算符 1.1.算术运算符  +(加法有三个用法:加法,正号,字符串连接符)  -  *  /  %  ++  -- 1.1.1./ 是取商,%是取余 1.1.2.++ 与--的用法(a:作用是自 ...

  2. java 基础 03 运算符 分支结构 循环结构

    今天内容: (1)运算符 (2)分支结构 (3)循环结构 1运算符 1.1赋值运算符 (1)简单赋值 = 表示赋值运算符,用于将=右边的数据赋值给=左边的变量来覆盖原来的数值. 笔试题: ia == ...

  3. day05-Python运维开发基础(双层循环、pass/break/continue、for循环)

    # ### 双层循环练习 # 十行十列小星星 j = 0 while j<10: # 逻辑代码写在下面 # 打印一行十个小星星 i = 0 while i<10: print(" ...

  4. Java 基础 break和continue关键字的使用

    break&continue关键字的使用 break:使用在switch...case语句或者循环结构语句中,表示结束当前循环. 示例代码: public class TestBreak { ...

  5. 050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句

    050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句 本文知识点:continue语句 continue语句 continue ...

  6. 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句

    049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...

  7. 《Java基础——循环语句》

    Java基础--循环语句       1. while语句: 规则: 1. 首先计算表达式的值. 2. 若表达式为真,则执行循环语法,直至表达式为假,循环结束.   格式: while(表达式) 语句 ...

  8. 【Java基础】【04循环语句&方法】

    04.01_Java语言基础(循环结构概述和for语句的格式及其使用) A:循环结构的分类 for,while,do...while B:循环结构for语句的格式: for(初始化表达式;条件表达式; ...

  9. Java基础之循环语句、条件语句、switch case 语句

    Java 循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whi ...

随机推荐

  1. 【刷题】BZOJ 2599 [IOI2011]Race

    Description 给一棵树,每条边有权.求一条简单路径,权值和等于K,且边的数量最小.N <= 200000, K <= 1000000 Input 第一行 两个整数 n, k 第二 ...

  2. GDOI2015小Z的旅行路线

    GDOI2015小Z的旅行路线 题意: \(n\)个点的无根树,边上有权值. \(q\)个询问\(s\)和\(s\),问从\(s\)出发,找一条最长路(不经过重复点),保证路径上所有边边权不超过\(x ...

  3. linux top命令查看系统资源

    参考材料: http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html

  4. java 根据包名、目录名获取所有定义的类

    /** * Scans all classes accessible from the context class loader which belong to the given package a ...

  5. 对SLIP,PPP,PPPoE,EtherNet的理解。[zz]

    经常看到PPP,PPPoE这些名词,当时也查了不少的资料,但是一直不太理解这是什么东西,干什么用的,今天静下心来,多看了点资料,有了一些初步理解,记录下来,以后有了新的理解再修改.   首先,SLIP ...

  6. Splay 区间操作(二)

    首先基本操作如下: 删除第rank个点 void Remove(int id){//删除第rank个点 rank++; int x = find(root, rank - 1); splay(x, 0 ...

  7. 前端PHP入门-006-表达式和运算符

    算术运算 概念 算数运算符,就是大家小学所学绝大多数知识: 符号 描述 示例 + 加号 x+" role="presentation" style="posit ...

  8. kvm虚拟机配置被克隆rhel6客户机的网卡

    例子:配置被克隆rhel6客户机的网卡 rhel6的网卡是通过udev规则来进行命名每个网卡都有不一样的macudev规则是根据网卡的mac来进行识别克隆出来的客户机,为了遵守每个网卡的mac都是全球 ...

  9. linux之nginx的安装

    (一)这次是自己折腾服务器的环境,所以自己算是都装过一遍,在装的过程中也是在网上搜索,其实最后在公司运维的指导下知道自己安装出错在哪里的.不说了,直接说安装和问题 (二):首先从 http://ngi ...

  10. [USACO07MAR]黄金阵容均衡Gold Balanced L…

    https://www.luogu.org/problem/show?pid=1360 题目描述 Farmer John's N cows (1 ≤ N ≤ 100,000) share many s ...