java基础3 循环语句:While 循环语句、do while 循环语句、 for 循环语句 和 break、continue关键字
一、While循环语句
1、格式
while(条件表达式){
执行语句;
}
2、要点
3、举例
题目1:输出0-100之间的所有数
class Demo3
{
public static void main(String[] args){
//输出0-100之间的所有数
int i=1;
while(i<100){
System.out.println(i);
i++;
}
}
}
题目2:猜数字游戏
public static void main(String[] args) {
//解析: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)
int num = (int)(Math.random()*100)+1; // 在1~100之间,生成一个随机数。
Scanner sc = new Scanner(System.in); //创建一个扫描器对象
int guessNum = -1; // guessNum 的初始化值不能在1~100之间(包括1和100)。
7 while (guessNum != num) {
System.out.println("请输入1-100之间整数");
int guessNum = sc.nextInt(); //扫描你输入的整形对象
if (guessNum == num) {
System.out.println("中啦");
} else if (guessNum < num) {
System.out.println("小啦");
} else {
System.out.println("大了");
}
}
}
二、do ... while循环语句
1、格式
do{
执行相应的代码;
}while(判断条件);
2、要点
3、while循环语句和do-while循环语句的区别:
1)while循环语句,是先判断,再执行相应代码
2)do-while循环语句,先执行相应的代码,再判断
4、例子
public static void main(String[] args) {
int x = 0, y = 0;
do {
System.out.println(x);
x++;
} while (x < 0);//注意一个细节:do...while 后面的分号
// do...while:不管是否满足循环条件,do都会先执行一次。
while (y < 0) {
System.out.println(y); //条件不满足,结果只有x的值输出
y++;
}
}
题目2:猜数字游戏
public static void main(String[] args) {
// 记录用户输入的数字
int guess = -1;
// 记录用户输入次数
int count = 0;
// 生成1-100之间随机数
int num = (int) (int)(Math.random()*100)+1;// 在1~100之间,生成一个随机数。
Scanner sc = new Scanner(System.in);//创建一个扫描器对象
// 循环猜数字
do {
System.out.println("请输入1-100之间的数字");
guess = sc.nextInt();//扫描你输入的整形对象
if (guess > num) {
System.out.println("哥们,太大了");
} else if (guess < num) {
System.out.println("哥们,太小了");
} else {
System.out.println("恭喜您,中啦");
}
count++;
} while (guess != num); //注意一个细节:do...while 后面的分号
System.out.println("你猜测的数字是:" + num + "猜测了" + count + "次");
}
三、for 循环语句(和增强for循环)
1.格式
for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句;
}
2、for 和while的区别
public static void main(String[] args) {
for (int x = 0; x < 5; x++) {
System.out.println("hello java");
}
System.out.println(x);
//x cannot be resolved to a variable
int y = 0;
while (y < 5) {
System.out.println("hello world");
y++;
}
System.out.println(y);
}
解析:
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乘法表
class Demo1{
public static void main(String[] args) {
for (int x = 1; x <= 9; x++) {
for (int y = 1; y <= x; y++) {
System.out.print(y + "*" + x + "=" + x * y + '\t'); // \t:制表符,相当于Table键,一个\t代表四个空格
}
System.out.println(" ");
}
}
}
效果图:

转义字符:
\r 表示接受键盘输入,相当于按下回车。
\n 表示换行。
\t 制表符,相当于Table键(四个空格)
\b 退格键,相当于Back Space
\’ 单引号
\’’ 双引号
\\ 表示一个斜跨
题目2:打印直角三角形
public static void main(String[] args) {
for (int x = 0; x < 5; x++) {
for (int y = 0; y <= x; y++) {
System.out.print("*");
}
System.out.println("");
}
}
效果图

题目3:打印倒直角三角形
public static void main(String[] args) {
for (int x = 5; x > 0; x--) {
for(int y=x;y>0;y--){
System.out.print("*");
}
System.out.println("");
}
}
效果图

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循环一定要有变量目标
public class Demo2 {
public static void main(String[] args) {
int[] arr={12,2,5,0};
//普通for循环
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//增强for循环
for (int i : arr) {
System.out.println(i);
}
}
}
四、 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 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |
java基础3 循环语句:While 循环语句、do while 循环语句、 for 循环语句 和 break、continue关键字的更多相关文章
- Java基础复习之二:运算符,键盘录入,流程控制语句,if语句,三元运算
1.运算符 1.1.算术运算符 +(加法有三个用法:加法,正号,字符串连接符) - * / % ++ -- 1.1.1./ 是取商,%是取余 1.1.2.++ 与--的用法(a:作用是自 ...
- java 基础 03 运算符 分支结构 循环结构
今天内容: (1)运算符 (2)分支结构 (3)循环结构 1运算符 1.1赋值运算符 (1)简单赋值 = 表示赋值运算符,用于将=右边的数据赋值给=左边的变量来覆盖原来的数值. 笔试题: ia == ...
- day05-Python运维开发基础(双层循环、pass/break/continue、for循环)
# ### 双层循环练习 # 十行十列小星星 j = 0 while j<10: # 逻辑代码写在下面 # 打印一行十个小星星 i = 0 while i<10: print(" ...
- Java 基础 break和continue关键字的使用
break&continue关键字的使用 break:使用在switch...case语句或者循环结构语句中,表示结束当前循环. 示例代码: public class TestBreak { ...
- 050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句
050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句 本文知识点:continue语句 continue语句 continue ...
- 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句
049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...
- 《Java基础——循环语句》
Java基础--循环语句 1. while语句: 规则: 1. 首先计算表达式的值. 2. 若表达式为真,则执行循环语法,直至表达式为假,循环结束. 格式: while(表达式) 语句 ...
- 【Java基础】【04循环语句&方法】
04.01_Java语言基础(循环结构概述和for语句的格式及其使用) A:循环结构的分类 for,while,do...while B:循环结构for语句的格式: for(初始化表达式;条件表达式; ...
- Java基础之循环语句、条件语句、switch case 语句
Java 循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whi ...
随机推荐
- tableau学习
一.维度 度量 1. 连接到新数据源时,Tableau 会将该数据源中的每个字段分配给“数据”窗格的“维度”区域或“度量”区域,具体情况视字段包含的数据类型而定. 例如: 2. tableau中的字段 ...
- HDU--1010
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 分析:dfs+奇偶剪枝. Tempter of the Bone #include<c ...
- 从一个集合中过滤另一个集合中存在的项(类似in)
直接贴代码出来: List<PriceMark> list = PriceMarkDAL.m_PriceMarkDAL.GetList("Erp_ProName='TLC7528 ...
- WebSocket解释及如何兼容低版本浏览器
WebSocket类似HTTP 协议,是为了弥补HTTP 协议的缺陷:通信只能由客户端发起,HTTP 协议做不到服务器主动向客户端推送信息. WebSocket 协议在2008年诞生,2011年成为国 ...
- tf.slice函数解析
tf.slice函数解析 觉得有用的话,欢迎一起讨论相互学习~Follow Me tf.slice(input_, begin, size, name = None) 解释 : 这个函数的作用是从输入 ...
- 解决VSCode终端中文乱码问题
VSCode终端其实调用的是cmd.exe,所以当这里出现中文乱码的时候要解决的是cmd的编码设置问题. 可以通过chcp命令查看cmd的编码设置,GBK2312的代码页编号是936,然后改成utf- ...
- CF540 C BFS 水
'.'->'X' 前者走后变成后者,后者除了是终点不能再走.初始位置是X很傻的以为这样从初始点走出去后初始位置就变成不能走了,实际上是还能走一次的. 其他就是BFS,路上记得把路变成X就好了 太 ...
- JVM学习二:JVM之类加载器之加载分析
前面一遍,我们对类的加载有了一个整体的认识,而这一节我们细节分析一下类加载器的第一步,即:加载. 一.概念 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区 ...
- css单位em、px、rem和pt的区别
1.PX :像素(Pixel) PX是相对长度单位,它是相对于显示器屏幕分辨率而言的. 优缺点:比较稳定和精确,但在浏览器中放大或缩放浏览页面时会出现页面混乱的情况. 2.EM:是相对长度单位. EM ...
- 【BZOJ】1355 [Baltic2009]Radio Transmission
[算法]KMP [题解]KMP中n-next[n]得到最小循环节的性质. 考虑一个循环串(最后一个循环节可能残缺),它最长的[后缀=前缀]一定是以第二个循环节为起始位置的后缀. 正着考虑的话假设后缀T ...