java基础3 循环语句:While 循环语句、do while 循环语句、 for 循环语句 和 break、continue关键字
一、While循环语句
1、格式
while(条件表达式){
执行语句;
}
2、要点
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、要点
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的区别
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 }
效果图:
转义字符:
\r 表示接受键盘输入,相当于按下回车。
\n 表示换行。
\t 制表符,相当于Table键(四个空格)
\b 退格键,相当于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 }
四、 break、continue关键字
1、break关键字:break 语句用于终止最近的封闭循环或它所在的 switch 语句。控制传递给终止语句后面的语句(如果有的话)。
适用:for循环 、 switch判断语句。
break的用法:
- 单独使用。
- 与标签一起使用。(标签:即一个名字,满足标识符的条件即可)。
使用细节: 不要再break语句之后,编写其他语句,永远都执行不到,编译报错。
2、continue关键字:语句将控制权传递给它所在的封闭迭代语句的下一次迭代。(跳出本循环,执行下一次循环)。
适用于:while 、 do while 、 for循环语句
使用细节:
1. 如果continue出现在循环的末尾(最后一条语句),那么可以省略。
2. 如果continue出现在循环的第一条语句,那么后面的语句都无法执行,所以编译报错。
3. 可以结合标记使用。
3、小结:
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:http://www.cnblogs.com/dshore123/p/8656779.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |