循环结构
场景:重复做的事
循环的特点:
循环操作:重复的事情,可以是一样的,也可以是有规律的
循环条件:循环继续的条件,循环结束的条件
while
语法结构:
while(循环条件){
循环操作;
}
执行流程:先判断循环条件,条件如果成立,就执行循环操作;循环操作执行完,继续判断条件;
如果条件成立,就执行循环操作;…直到条件不成立,循环结束。
特点:先判断,再执行
如果条件不成立,循环操作可能一次都不执行。
public class Test3 { public static void main(String[] args) { int i = 1; while(i<=10) { System.out.println("好好学习,天天向上 "+i); i++; } } }
do…while
语法:
do{
循环操作;
}while(条件);
执行:先执行一边循环操作,然后判断条件,条件成立,就继续执行操作;
循环操作执行结束,继续判断条件;…直到循环条件不成立,循环结束。
特点:先执行,后判断
循环操作至少会执行一次
import java.util.Scanner; public class Test7 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String answer; // do { // System.out.println("老师讲,我学习"); // System.out.println("老师问:会了么?"); // System.out.print("学生答:"); // answer = sc.next(); // }while("n".equals(answer)); do { System.out.println("老师讲,我学习"); System.out.println("老师问:会了么"); System.out.print("学生答:"); answer = sc.next(); switch(answer) { case "y": System.out.println("会了"); break; case "n": System.out.println("不会,请老师继续讲解"); break; } }while("n".equals(answer)); } }
for
语法:
for ( **1.**循环变量初始化;2.循环条件;4.循环变量的更新 ){
3.循环操作;
}
特点:循环此数固定
public class Fortest { public static void main(String[] args) { for (int i = 0; i <= 10; i++) { System.out.println(i); } } }
关键字
**break:**中断指令结束所在层的循环;
continue:中断指令 继续,中断本轮的循环,继续执行下一轮的指令;
作业
1
/*
* 输出100以内9的倍数,中间用tab键间隔,每5个换行
*/
public class GoHome {
public static void main(String[] args) {
int num = 0;
for (int i = 1; i <= 100; i++) {
if (i % 9 == 0) {//9的倍数
System.out.print(i + "\t");
num++;//记录输出了几个数
if (num % 5 == 0) {//每输出5个换一行
System.out.println();
}
}
}
}
}
2
/*
* 某学校2012年有学生200人,
* 每年增长25%。请问按此增长速度,到哪一年学生人数将达到1000人
*
*/
public class GoHome1 {
public static void main(String[] args) {
int num =2012;//2012年
double i = 200;//学生人数
while(i<=1000) {
num++;//记录年份增加
i=i+i*0.25;//每年增长
}
System.out.println("到"+num+"年学生将达到1000人");
}
}
3
/*
* 4、输入从周一至周五每天的学习时间(以小时为单位),
* 并计算每日平均学习时间。输出效果如下:
*/
import java.util.Scanner;
public class GoHome2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double num = 0;
for (int i = 1; i <= 5; i++) {
System.out.print("请输入周" + i + "的学习时间:");
int hour = sc.nextInt();
num += hour;//时间相加
}
double time =num/5;//每天学习的平均时间
System.out.println("每天学习的平均时间是:" + time);
}
}
4
/*
* 计算顾客比例
*/
import java.util.Scanner;
public class GoHome3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = 0;// 30以下
int num1 = 0;// 30以上
for (int i = 1; i <= 10; i++) {
System.out.print("输入第" + i + "为乘客的年龄:");
int ages = sc.nextInt();
if (ages < 30) {
num++;//记录人数
} else {
num1++;
}
}
System.out.println("30岁以下人数的比例是:" + (num / 10.0 * 100) + "%");
System.out.println("30岁以上人数的比例是:" + (num1 / 10.0 * 100) + "%");
}
}
5
/*
* 求两个数最大公约数
*
*/
import java.util.Scanner;
public class GoHome5 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("输入第一个数:");
int num = input.nextInt();
System.out.print("输入第二个数:");
int num1 = input.nextInt();
int yu = 1;
while (num1 != 0) {
yu = num % num1;
num = num1;
num1 = yu;
}
System.out.print(num);
}
}
6
/*
* 6、整数反转:如12345,输出54321(选做)
*/
import java.util.Scanner;
public class GoHome4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("输入一个数:");
int num = sc.nextInt();
int num1 = 0;
while (num > 0) {//大于0继续循环
num1 = num % 10;//取余
System.out.print(num1);//输出末尾数字
num /= 10;
}
}
}