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 ...
随机推荐
- 【刷题】BZOJ 2599 [IOI2011]Race
Description 给一棵树,每条边有权.求一条简单路径,权值和等于K,且边的数量最小.N <= 200000, K <= 1000000 Input 第一行 两个整数 n, k 第二 ...
- GDOI2015小Z的旅行路线
GDOI2015小Z的旅行路线 题意: \(n\)个点的无根树,边上有权值. \(q\)个询问\(s\)和\(s\),问从\(s\)出发,找一条最长路(不经过重复点),保证路径上所有边边权不超过\(x ...
- linux top命令查看系统资源
参考材料: http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html
- java 根据包名、目录名获取所有定义的类
/** * Scans all classes accessible from the context class loader which belong to the given package a ...
- 对SLIP,PPP,PPPoE,EtherNet的理解。[zz]
经常看到PPP,PPPoE这些名词,当时也查了不少的资料,但是一直不太理解这是什么东西,干什么用的,今天静下心来,多看了点资料,有了一些初步理解,记录下来,以后有了新的理解再修改. 首先,SLIP ...
- Splay 区间操作(二)
首先基本操作如下: 删除第rank个点 void Remove(int id){//删除第rank个点 rank++; int x = find(root, rank - 1); splay(x, 0 ...
- 前端PHP入门-006-表达式和运算符
算术运算 概念 算数运算符,就是大家小学所学绝大多数知识: 符号 描述 示例 + 加号 x+" role="presentation" style="posit ...
- kvm虚拟机配置被克隆rhel6客户机的网卡
例子:配置被克隆rhel6客户机的网卡 rhel6的网卡是通过udev规则来进行命名每个网卡都有不一样的macudev规则是根据网卡的mac来进行识别克隆出来的客户机,为了遵守每个网卡的mac都是全球 ...
- linux之nginx的安装
(一)这次是自己折腾服务器的环境,所以自己算是都装过一遍,在装的过程中也是在网上搜索,其实最后在公司运维的指导下知道自己安装出错在哪里的.不说了,直接说安装和问题 (二):首先从 http://ngi ...
- [USACO07MAR]黄金阵容均衡Gold Balanced L…
https://www.luogu.org/problem/show?pid=1360 题目描述 Farmer John's N cows (1 ≤ N ≤ 100,000) share many s ...