while循环结构
下面先来看一个例子
小龙女对杨过说,你今天要练成玉女心经哦!否则就对我说1000次我爱你。杨过没有完成任务:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class ILoveU{
public static void main(String[] args) {
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
System.out.println("我爱你");
// 太难说了
}
}
好难啊!!!怎么解决呢?使用循环吧!!!
while循环
看下面的例子:
public class ILoveU{
public static void main(String[] args) {
int i =1;
while(i<=1000) {
System.out.println("我爱你");
i++;
}
}
}
|- 比较:比第一种方法要简洁好多。这就是这节课要学习的while循环语句
|- while循环的使用:
|- while循环错误的使用:
while(int i = 1;i<=20) {
System.out.println("我爱你");
i++;
}
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String answer = "y";
System.out.println("小龙女:你爱我吗?(y/n)");
answer = input.next();
if(!answer.equals("y")) {
System.out.println("小龙女:罚说5遍\"我爱你\"!");
while(!answer.equals("y")) {
int i = 1;
while(i <= 5) {
System.out.println("杨过:龙儿,我爱你");
i++;
}
System.out.println("小龙女:你爱我吗?(y/n)");
answer = input.next();
}
System.out.println("我也爱你,过儿!");
}
}
}
|- 问题:根据输入的学员成绩,来求出平均成绩
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String className; // 用来保存该班班级号
int studentNum; // 用来保存该班学员人数
double studentScore;// 用来保存学员的成绩
double totalScore = 0;
double avg;
System.out.print("请输入该班班级号: ");
className = input.next();
/*判断是否输入班级号*/
if(className.equals(null)) {
while(className.equals(null)) {
System.out.print("请输入该班班级号: ");
className = input.next();
}
}
/*判断是否输入学员人数*/
System.out.print("请输入该班学员人数: ");
studentNum = input.nextInt();
if(studentNum == 0) {
while(studentNum == 0) {
System.out.print("请输入该班学员人数: ");
studentNum = input.nextInt();
}
}
int i = 1;
while(i<= studentNum) {
System.out.print("请输入学员"+i+"的成绩: ");
studentScore = input.nextInt();
i++;
totalScore += studentScore;
}
System.out.print(className + "班总分是:" + totalScore);
avg = totalScore / studentNum;
System.out.print("\n" + className + "班平均分是:" + avg);
}
}
while循环常见错误:
错误操作代码: |
int i = 1; while(i <= 4) { System.out.println("HELLO WORLD"); // 这里缺少了i++ } // 这就是传说中的死循环 |
int i = 1; while(i > 4) { System.out.println("HELLO WORLD"); i++; } // 一次也没有打印 |
int i = 1; while(i < 4) { System.out.println("HELLO WORLD"); i++; } // 只打印了3次 |
do-while 循环
|- 从英文的字面意思可以知道是先做,再循环。
|-举例:听写单词,如果没有满分,就继续听写。
|- 下面先看一个演示:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import java.util.*;
public class Test {
public static void main(String[] args) {
String answer = "y";
Scanner input = new Scanner(System.in);
do {
System.out.println("考vb");
System.out.println("考java");
System.out.println("考oracle");
System.out.print("及格了吗?");
answer = input.next();
} while(!answer.equals("y"));
System.out.println("过儿,你可以不再古墓待了,你毕业了。");
}
}
|- 如何使用do-while循环
|- 问题:连续录入某班学员姓名,直到输入“c”,才录入完毕。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import java.util.*;
public class Test {
public static void main(String[] args) {
String flag = "c";
String name;
Scanner input = new Scanner(System.in);
do {
System.out.println("请输入学员姓名:");
name = input.next(); // 从控制台接受输入
}while(!name.equals(flag));
System.out.println("录入完毕");
}
}
|- do-while的死循环
int i =1;
do
{
System.out.println("死循环");
// i++;
}while(i< 5);
|- while和do-while的区别
|-相同点:
|- 都是循环结构,使用“while(循环条件)”表示循环条件,使用大括号将循环操作括起来。
|- 不同点:
|- 语法不同。与while循环相比,do-while循环将while关键字和循环条件放在后面,而且前面多了一个do关键字,后面多了一个分号。
|- 执行次序不同。While循环先判断,再执行;do-while循环先执行,再判断。
|- 一开始循环条件就不满足的条件下,while循环一次都不会执行,do-while循环则不管在什么情况下都至少执行一遍。
使用循环打印:100、95、90、85…10、5
int a = 100;
while(a>=5) {
System.out.print(a + "、");
a=a-5;
}