循环结构
Java中的循环结构有三种:while循环结构 do while循环结构 for 循环结构
while循环结构:
语法格式:
```java
while(循环条件){
循环操作
}
```
while循环结构如果第一次判断循环条件就不满足,则会直接跳出循环,循环操作一遍都不会执行
##### 这是while循环结构的一个特点:先判断 后执行。
while循环的执行顺序:
1:声明并创建循环变量
2:判断循环条件是否满足,如果满足则执行循环操作,否则退出循环
3:执行玩循环操作后再次判断循环条件 决定 继续 执行循环 还是 退出循环
### while案例
```java
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//检查学习情况,直到合格为止
System.out.println("你的学习合格了吗?(y/n)");
Scanner scanner=new Scanner(System.in);
String hege = scanner.next();
while( !"y".equals(hege)){
// equals相当于 == 判断字符是不是相等
System.out.println("上午学理论");
System.out.println("下午学编程");
System.out.println("经过复习,这次合格了吗?");
hege = scanner.next();
}
System.out.println("恭喜你学习完成,去玩耍吧");
}
}
```
while循环结构解决问题的步骤:
1:分析循环条件和循环操作
2:套用while语法写出代码
3:检查循环能否退出
do while 循环结构:
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次
语法格式:
```java
do{
循环操作
} while (循环条件);
```
### do while 循环的执行顺序一般如下:
1:声明并创建循环变量
2:判断循环条件是否满足,如果满足,则执行循环操作,否则退出循环
3:执行玩循环操作后再次判断循环条件 决定 继续 执行循环 还是 退出循环
### do while循环案例:
```java
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
String hege = null; //定义一个全局的变量,恭供下文使用
Scanner scanner = new Scanner(System.in);
//把扫描器定义在循环的外面,能够提高程序的性能,占用更少的电脑系统资源
do {
System.out.println("上机编写程序");
System.out.println("合格了吗?");
hege = scanner.next();
//限制性,在判断
} while (!"y".equals(hege));
System.out.println("恭喜你合格了");
}
}
```
使用do while循环解决问题的步骤如下:
1:分析循环条件和循环操作
2:套用while语法写出代码
3:检查循环能否退出
for循环
语法格式:
```Java
for(表达式1;表达式2;表达式3){
//循环体
}
```
for循环中有三个表达式
| 表达式1: | 赋值语句 | 循环结构的初试部分,为循环变量赋初值 | 举例 int i = 0 |
| --------- | -------- | ------------------------------------------------------------ | ----------------- |
| 表达式2: | 条件语句 | 循环结构的循环部分 | 举例: i < 100 |
| 表达式3: | 赋值语句 | ,通常使用++或--运算符 循环结构的迭代部分,通常用来修改循环变量的值 | 举例 i++ |
for循环结构执行的顺序
1:执行初始部分( int i= 0;)
2:进行循环条件判断(i<100)
3:根据循环条件判断结果
4:执行迭代部分,改变循环变量值(i++)
5:依次重复步骤(2) ~步骤(4)知道退出for循环结构
### for 循环案例
```java
package edc.xcdq;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sum = 0 ;
for( int i=1;i<5;i++){
System.out.println("输入第"+ i +"门课的成绩");
int fen = scanner.nextInt();
sum += fen; //sum = sum+fen
}
int pingjunfen = sum / 5;
System.out.println("平均分为:"+ pingjunfen);
}
}
```
for循环解决问题的步骤:
1:明确循环条件和循环操作
2:套用while语法写出代码
3:检查循环能否退出
break语句的使用:
break 语句不仅可以用在while 和do while 循环结构中 也可以用在for循环结构中
break 语句案例:
```java
import java.util.Scanner;
public class break语句的练习 {
public static void main(String[] args) {
int score;
int sum =0;
int avg;
boolean isNegative = false;
Scanner scanner = new Scanner(System.in);
System.out.println("输入学生姓名");
String name = scanner.next();
int i=0;
while(i<5){
System.out.println("请输入第" + (i+1) + "门课的成绩 :");
score = scanner.nextInt();
if(score < 0){
isNegative = true;
break;
}
sum = sum + score;
i++;
}
if(isNegative){
System.out.println("抱歉,分数录入错误,请重新进行录入!");
}else {
avg = sum / 5;
System.out.println(name + "的平均分是:"+avg);
}
}
}
```
continue语句的使用:
#### continue语句用于跳出本次循环,进入下一次循环的语句
#### continue语句的案例
```java
import java.util.Scanner;
public class Continue的练习 {
public static void main(String[] args) {
int score;
int num =0;
int avg;
Scanner scanner = new Scanner(System.in);
System.out.println("输入班级总人数");
int total = scanner.nextInt();
int i=0;
while(i < total){
i++;
System.out.println("请输入第" + i + "位学生的成绩");
score = scanner.nextInt();
if(score < 80){
continue;
}
num++;
}
System.out.println("80分以上的学生人数是:"+num);
double rate = (double) num / total *100;
System.out.println("80分以上的学生所占的比例为"+ rate + "%");
}
}
```