Java的流程控制语句之循环结构的详解和代码实例。
Java的流程控制语句之循环结构
分类:
1. 顺序结构
2. 选择结构
3. 循环结构
循环语句的组成:
初始语句:
一条或者多条语句,这些语句完成一些初始化操作
判断条件语句:
这是一个Boolean表达式,这个表达式决定
是否执行循环体
循环语句:
这个部分是循环语句体,也是我多次要做到事情
控制条件语句:
这个部分在一次循环体结束后,下次循环判断条件执行
前执行。通过控制体的变量,使循环体在合适的时候结束
循环语句分类:
1.for循环
2.while循环
3.do…………while循环
for循环的解释和例题详解
for循环:
for循环格式:
for(初始语句;判断语句;控制语句;){
循环语句体;
}
执行流程:
A: 执行初始语句
B:执行判断条件语句,看结果是ture还是false
如果是false循环结束
如果是true继续执行
C :执行循环语句
D :执行条件语句
E :回到B继续
for循环例子:
class Li{
public static void main(String[] args){
for(int x=1;x<=10;x++) {
System.out.println("HellowWorld");
}
}
}
注意事项:
A:关系表的式无论简单还是复杂,结果必须是boolean类型
B:if语句控制的语句体如果是一条语句体,大括号可以省略
如果是多条语句体,就不可省略,建议永远不要省略。
C:一般来说:有左大括号没有分号;有分号就没
例子 在控制台输出所以水仙花数?
水仙花数是一个三位数,其各位数字的立方和等于该数本身
举例:153就是一个水仙花数 1*1*1+5*5*5+3*3*3=153
class Li{
public static void main(String[] args){
/*
我们通过for循环可以实现获取每一个三位数
但是麻烦的是如何获取这个三位数的个,十,百位上的数据
假设有一个数据153
个位:153%10=3
十位:153/10%10=5
百位:153/10/10%10=1
千位:x/10/10/10%10
万位:x/10/10/10/10%10
*/
for(int x=100;x<1000;x++) {
int ge = x%10;
int shi = x /10%10;
int bai = x/10/10%10;
//让ge*ge*ge+shi*shi*shi+bai*bai*bai和该数据比较
if(x==ge*ge*ge+shi*shi*shi+bai*bai*bai){
//如果相同就输出
System.out.println(x);
}
}
}
}
例子二:统计水仙花的个数
class Li{
public static void main(String[] args){
int y = 0;
for(int x=100;x<1000;x++) {
int ge = x%10;
int shi = x /10%10;
int bai = x/10/10%10;
//让ge*ge*ge+shi*shi*shi+bai*bai*bai和该数据比较
if(x==ge*ge*ge+shi*shi*shi+bai*bai*bai){
//如果满足要求就计数
y++;
}
}
System.out.println(y);
}
}
while循环的解释和例题详解
while循环语句
基本格式:
while(判断语句){
循环语句;
}
扩展格式:
初始语句
while(判断语句){
循环体语句;
控制条件语句;
}
while例子:
class Li{
public static void main(String[] args){
int x = 1;
while(x<=10){
System.out.println("HellowWWord");
x++;
}
}
}
while和for循环的区别:
/*使用区别:如果你想在循环结束后,继续使用控制条件的那个变量,用while循环
否在就用for循环。不知道的境况用for循环
因为变量及早的从内存中消失,可以提高内存使用效率
如果是一个范围的,用for循环非常明确
如果名确要做多少次,用while循环
*/
区别例子:
class Li{
public static void main(String[] args){
for(int x = 0;x<10;x++){
System.out.println("再牛的肖邦,以也弹不出各哥的悲伤");
}
System.out.println(y);
//在这里就不能接续访问y
int s = 0;
while(s<10){
System.out.println("再牛的肖邦,以也弹不出各哥的悲伤");
}
System.out.println(z);
//在这里就能接续访问z
}
}
题:珠穆朗玛峰高8848米一张纸厚0.01米请问叠几次可以超过珠穆朗玛峰
class Li{
public static void main(String[] args){
int y = 0;
int z = 1;
while(z<884800){
z*=2;
if(z<884800){
y++;
}
}
System.out.println(y);//输出结果20
}
}
do…while循环的解释和例题详解
基本格式:
do{
循环语句;
}while(判断条件语句);
扩展格式:
初始语句;
do{
循环语句体;
控制条件语句体;
}while(判断条件语句);
/*循环语句的区别:
do...while循环至少执行一次循换体
而for,while循环必须先判断条件是否成立,然后再决定是否执行循环体语句
那么,我们一般先考虑for其次是while最后是do....while */
很重要:
- 输出语句System.out.println()(它输出另起一行)
- 输出语句的另一中方式Systm.out.prin()(它输出不另起一行)
- 如果Systm.out.prin()想另起一行可以用System.out.println()空的起换行作用
循环嵌套代码讲解
循环嵌套:就是循环语句的循环体是一个循环语句
例子:输出4行5列星星*图案
class Li{
public.static.void main(String[] args){
for(int x = 1;x<4;x++){
for(int z =1;z<5;z++){
System.out.prin("*");
}
System.out.println();
}
}
}
结论:
/*通过结果我们知道这样的一个结论:外循环控制行数,内循环控制列数*/
需求:请输出下列形状:
*
**
***
****
*****
答案:class Li{
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();
}
}
}
需求:请输出九九乘法表
class Li{
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+"="+y*x+"\t");
}
System.out.println();
}
}
}