Java流程控制之循环结构

顺序结构:从上往下依次执行
选择结构:根据条件执行对应的内容
循环结构:
1.while循环
2.do-while循环
3.for循环
4.循环嵌套

使用 break语句 continue语句跳出循环

while(循环条件)

语句;

循环输出小于5的数

int n=1;

while(n<5)

{ //n必须进行初始化

​ //输出n的值 循环变量n的值必须被改变,避免死循环

​ n++;

}

例:求1-5的累加和

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package imoocProj;

public class PlusDemo {

public static void main(String[] args) {
// 求1-5的累加和
int sum=0,i=0;
while(i<=5) {
sum=sum+i;
i++;
}
System.out.println("sum="+sum);
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package imoocProj;

public class CharDemo {

public static void main(String[] args) {
// 循环输出26个英文小写字母,分两行显示
char ch='a';
int n=1;
while(ch<='z') {
System.out.print(ch);
if(n%13==0)
System.out.println();
ch++;
n++;

}
}

}

使用while循环求1到5的平方和。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class LoopDemo {
public static void main(String[] args) {
int n=1;//定义整型变量n作为循环变量,并初始化

int sum=0;//定义整型变量sum存放和,并初始化

while(n<=5){
sum=sum+n*n;
n++;
}//使用while循环求1到5的平方和

System.out.println("1到5的平方和为:"+sum);//输出平方和

}

}

do-while 循环

语法格式

do{
语句;
}while(条件);

1.do-while 循环至少执行一次
2.循环条件后的分号不能丢

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package imoocProj;

public class DoWhileDemo {

public static void main(String[] args) {
// 求1-5的累加和
int n=1;
int sum=0;
do {
sum=sum+n;
n++;
}while(n<=5);
System.out.println(sum);
}

}

do-while循环猜字游戏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package imoocProj;

import java.util.Scanner;

public class GuessDemo {

public static void main(String[] args) {
// 猜数游戏
//设置要猜的数
int number=(int)(Math.random()*10+1);//随机数函数
int guess;
System.out.println("猜一个介于1到10之间的数");
do {
System.out.println("请输入您猜测的数字:");
Scanner sc=new Scanner(System.in);
guess=sc.nextInt();
if(guess>number) {
System.out.println("太大!");
}else if(guess<number) {
System.out.println("太小!");
}
}while(number!=guess);
System.out.println("您猜中了!答案为"+number);

}

}

for循环

for(循环变量初始化①;循环条件②;循环变量变化④){
循环操作③
}

例:

for(int n=1;n<5;n++){

​ //输出语句;

}

for循环注意事项
1.三个表达式都是可以省略的
2.break语句表示跳出当前循环

练习:编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class LoopDemo {
public static void main(String[] args) {
int ge,shi,bai;
//定义变量ge、shi、bai,用于存放个位、十位、百位上的数字
int i,ji,sum;
for(i=200;i<=300;i++)//使用for循环
{
bai=i/100;//取出百位数

shi=i%100/10;//取出十位数

ge=i%100%10;//取出个位数

ji=bai*shi*ge;//计算三个数字之积

sum=bai+shi+ge;//计算三个数字之和

if((ji==42)&(sum==12)){
System.out.println(i);
}
//如果积等于42并且和为12,则将满足条件的数输出

}
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package imoocProj;

public class StarDemo {

public static void main(String[] args) {
// 输出十行十列的星号
int m=1;//外重循环
int n=1;//内重循环
while(m<=10) {
n=1;
while(n<=10) {
System.out.print("*");
n++;
}
System.out.println();
m++;
}

}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package imoocProj;

public class JiechengPlus {

public static void main(String[] args) {
// 1到10的阶乘
int s=1,sum=0;
for(int i=1;i<=10;i++) {
s=1;
for(int j=1;j<=i;j++) {
s=s*j;
}
sum=sum+s;
}
System.out.println("1!+2!+3!+..+10!="+sum);
}

}

用星号输出一个梯形,如下图所示:(使用嵌套for循环完成)

1
2
3
4
5
    ***
*****
*******
*********
***********

任务

1、外重循环控制输出行数

2、第一个内重循环控制输出的空格数,依次递减。

注意:由于星号和空格在屏幕上所占的空间不同,所以可以适当调整空格的输出,比如每次循环都输出两个空格。这样输出来的图形会更加接近梯形

3、第二个内重循环控制每行输出的星号数

4、输出完一行的星号和空格后换行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class StarDemo {
public static void main(String[] args) {
// 输出星号组成的梯形
int N=5;
for(int i=1;i<=N;i++){
for(int j=1;j<=N-i;j++){
System.out.print(" ");
}
for(int j=1;j<=2*i+1;j++){
System.out.print("*");
}
System.out.println();
}

}

}

break语句
1.break语句可以结束当前循环的执行
2.执行完break语句后,循环体中位于break语句后面的语句就不会被执行
3.在多重循环中,break语句只向外跳一层

break语句只能用在循环语句和switch语句中,
continue只能用在循环语句中,而且continue语句只是结束当前次的循环执行,但是还要继续下一次的循环。

debug
调试的作用:能看清程序每一步的效果,在需要查看见过的时候,使用debug查看实际结果是否与预期结果一致
调试:设置断点(可设置多个)
debug窗口显示当前运行的什么类当中的什么方法的第几行
Variables(变量):显示当前变量
Breakpoints:当前断点
Outline:大纲
F6:是进行单步调试的快捷键
F5:到方法内部执行

F8:直接跳到下一个断点

-------------本文结束感谢您的阅读-------------