开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天,点击查看活动详情
do-while循环控制
循环变量初始化;
do{
循环体(语句);
循环变量迭代;
}
说明:
- do while是关键字
- 也有循环四要素,只是位置不一样
- 先执行,再判断,也就是说,一定会执行一次
- 最后有一个分号
- while和do-while区别距离:要账
DoWhile01.java
int i = 1;
do{
System.out.println("你好");
}while(i <= 10);
System.out.println("退出循环");
do-while细节
- 循环条件是返回一个布尔值的表达式
- do-while循环是先执行,再判断,因此它至少执行一次
练习:
-
打印1-100
-
计算1-100的和
-
统计1-200之间能被五整除但不能被三整除的个数(DoWhileExercise01.java)
public class DoWhileExercise01 { public static void main(String[] args) { //统计0-200之间能被5整除但不能被3整除的个数 // int sum = 0; int i = 0; do{ if(i % 5 == 0 & i % 3 != 0){ sum += 1; } i += 1; }while (i <= 200); System.out.println(sum); } } -
如果李四不还钱,则使出五连鞭,直到还钱为止
import java.util.Scanner; public class DoWhileExercise02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("你还不还钱!不还的话,我将使用出闪电五连鞭(y/n)"); char answer = ' '; do { answer = scanner.next().charAt(0); if (answer == 'y'){ System.out.println("算你识相!"); }else{ System.out.println("闪电五连鞭!!!"); } }while (answer == 'n'); } }
多重循环控制(难点!重点!)
介绍
1.将一个循环放在另一个循环内,就形成了嵌套循环,其中,for,while,do...while均可以作为外层循环和内层循环(建议一般使用两层,最多不要超过三层,否则,代码的可读性很差)
2.实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的档次循环,开始下一次循环
3.设外层循环次数为m次,内层循环体实际上需要执行m*n次
for(int i = 1; i <= 7; i++){
for(int j = 1; j <= 2; j++){
System.out.println("ok~~");//7*2=14
}
}
多重循环练习题
MulForExercise01.java
import java.util.Scanner;
public class MulForExercise01 {
public static void main(String[] args) {
// 1.统计三个班成绩情况,每个班有五名同学,求出各个班的平均分和所有班级的平均分(学生成绩从键盘输入)
//
// 2.统计三个班及格人数,每个班有五名同学
//
// 3.打印出九九乘法表
Scanner scanner = new Scanner(System.in);
int i = 0;
int j = 0;
int score = 0;
int sum1 = 0;
int sum2 = 0;
int pass = 0;
for (i = 0; i < 3; i++){
System.out.println("请输入第" + (i + 1) + "个班的成绩");
for (j = 0; j < 5; j++){
System.out.println("请输入第" + (j + 1) + "个学生成绩");
score = scanner.nextInt();
if (score >= 60){
pass += 1;
}
sum1 += score;
}
System.out.println("第" + (i + 1) + "个班的平均分为" + sum1/5.0);
System.out.println("第" + (i + 1) + "个班及格的人数为" + pass);
sum2 += sum1;
sum1 = 0;
pass = 0;
}
System.out.println("三个班平均分为:" + sum2 / 3.0);
}
}
1.统计三个班成绩情况,每个班有五名同学,求出各个班的平均分和所有班级的平均分(学生成绩从键盘输入)
2.统计三个班及格人数,每个班有五名同学
MulForExercise02.java
public class MulForExercise02 {
public static void main(String[] args) {
for (int i =1; i <=9; i++){
for (int j=1; j <=i; j++){
System.out.print(i + "*" + j +"=" +(i * j)+" ");
}
System.out.println(" ");
}
}
}
3.打印出九九乘法表
4.打印金字塔和空心金字塔
Stars.java
public class Stars {
public static void main(String[] args) {
/*
思路分析
化繁为简
1.先打印一个矩形
*/
//矩形
for (int i = 1; i <= 5; i++){
System.out.println("*****");
}
//打印半个金字塔
for (int i = 1; i <= 5; i++){
//在打印*之前要打印空格
for (int k = 1; k <= 5 - i; k++){
System.out.print(" ");
}
//i表示层数
//控制每层打印的*的个数
for (int j = 1; j <= 2 * i - 1; j++){
if (j == 1 || j == 2 * i - 1 || i == 5){
System.out.print("*");
}
else {
System.out.print(" ");
}
}
//每打印完一层的*后就换行 println本身就会换行
System.out.println();
}
}
}