—
– JAVA 循环语句for,while和do-while。
1.Java语言基础(循环结构概述和for语句的格式及其适用)
–当我们要执行很多相同的程序时,我们按照顺序结构就显的很不方便,像要输出10次helloworld还可以一次一次输出,但是如果要输出1000次甚至更多这个方法就显得很麻烦了。所以我们引进了一种方法就是循环结构。
-
循环结构的概念是循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,
需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环 -
循环结构的主要分类是for循环 和while循环。while循环中还包含do-while。
现在开始说for循环
for循环的格式是
for(初始化表达式语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程是
1. 执行初始化表达式
2. 执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
3. 执行循环体语句;
4. 执行控制体语句;
5. 回到b继续。
需要注意的是初始化表达式语句只执行一次
看这个题
求出1-100之间偶数和
public static void main(String[] args) {
int i = 1;
int sum = 0;
for (i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum += i;
}
}
System.out.println("偶数和是:" + sum);
}
这个就是求出1到100之间的偶数和。
注意事项:
- 判断条件语句无论简单还是复杂结果是boolean类型。
- 循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
- 一般来说:有左大括号就没有分号,有分号就没有左大括号。
例:
需求:在控制台输出所有的”水仙花数”
所谓的水仙花数是指一个三位数,其各位数字的立
方和等于该数本身。
举例:153就是一个水仙花数。并输出个数。
153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
public static void main(String[] args) {
int sum = 0;
int ge;
int shi;
int bai;
for (int i = 100; i < 1000; i++) {
ge = i % 10; /*一个三位数除以10取余数就是这个数的个位数
shi = i / 10 % 10; 一个三位数除以10再除以10取余数就是这个数
bai = i / 100 % 10; 的十位数,百位数同理*/
if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai) {
System.out.println("水仙花数是:" + i);
sum++;
}
}
System.out.println("水仙花的个数是:" + sum);
}
}
2.JAVA语言基础(循环结构while语句的格式和基本使用)
-
while循环语句的基本格式
while(判断条件语句) { 循环体语句; }
-
完整格式:
初始化条件语句; while(判断条件语句) { 循环体语句; 控制条件语句; }
-
执行流程:
a:执行初始化条件语句;
b:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到b继续。
我们再用while语句统计一下水仙花的个数
int sum = 0;
int ge;
int shi;
int bai;
int i=100;
while(i<1000){
ge = i % 10;
shi = i / 10 % 10;
bai = i / 100 % 10;
if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai) {
System.out.println("水仙花数是:" + i);
sum++;
}
i++;
}
System.out.println("水仙花的个数是:" + sum);
这个就是用while 编辑的水仙花数,可以对比着for循环来看。
3.Java语言基础(循环结构do-while语句的格式和基本使用)
-
循环语句do-while语句的格式:
do { 循环体语句; }while(判断条件语句);
-
完整格式:
初始化条件语句; do { 循环体语句; 控制条件语句; }while(判断条件语句);
-
执行流程:
a:执行初始化条件语句;
b:执行循环体语句;
c:执行控制条件语句;
d:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
e:回到b继续。
例题:
请在控制台输出数据1--10
代码如下:
public static void main(String[] args) {
int i=0;
do{ i++;
System.out.println(i);
}while(i<=9);
}
4.三种循环语句的区别
-
do…while循环至少执行一次循环体。
而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句 -
A: 如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用for循环。
因为变量及早的从内存中消失,可以提高内存的使用效率。
B: 建议优先考虑for循环,然后是while循环 ,最后是do…while循环
5.循环结构注意事项之死循环
-
一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
-
两种最简单的死循环格式
while(true){...} for(; ; ){...}
有时候可以用死循环和break等来解决一些问题。
例如求1+2+3+……加到多少大于500就可以用死循环和break来解决问题
int i=0;
int sum=0;
while(true) {
i++;
sum+=i;
if (sum>500) {
System.out.println(sum);
System.out.println(i);
break;
}
}
6.循环中的嵌套
循环时可以嵌套循环的让一个循环在另一个循环中收到控制然后解决一些问题
例题:
1.需求:请输出下列的形状
*
**
***
****
*****
2.输出九九乘法表
源代码
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println("\n");
}
}
上面就是两个嵌套的典型例子,可以做其他类似的题练习练习。
7.控制跳转语句
break语句可以强制让循环停止,上面死循环的时候有用到,否则根本无法对语句进行控制,死循环永远是死循环。它可以让在某个循环执行到某一步的时候就结束。
-
控制语句的分类
break 中断
continue 继续
return 返回 -
1.break的使用场景
(1):在选择结构switch语句中
(2):在循环语句中
注意:离开使用场景的存在是没有意义的。2.作用
(1)退出单层循环
(2)退出多层循环(几乎不使用)
-要想实现这个效果,就必须知道一个东西;带标签的语句;
-格式:标签名:语句 -
1.continue的使用场景
(1)在循环中
(2)在离开场景无意义2.作用
跳出一次循环,执行下一步操作3.做个练习
for(int x=1; x<=10; x++) { if(x%3==0) { //在此处填写代码 } System.out.println(“Java”); } 我想在控制台输出2次:“Java“ 我想在控制台输出7次:“Java“ 我想在控制台输出13次:“Java“
for(int x=1; x<=10; x++) {
if(x%3==0) {
break;
}
System.out.println(“Java”);
}
for(int x=1; x<=10; x++) {
if(x%3==0) {
continue;
}
System.out.println(“Java”);
}
for(int x=1; x<=10; x++) {
if(x%3==0) {
System.out.println(“Java”);
}
System.out.println(“Java”);
}
- 控制跳转语句retuen语句
1.return的作用
return 就是退出一个方法,即结束当前方法。
跳转到上层调用的方法。这个在方法的使用那里会在详细的讲解