1、目标
掌握while循环结构
掌握do-while循环结构
掌握for循环结构
理解各种循环结构的适用场景
2、循环
2.1 循环结构的特点
2.2 什么是while循环
2.3 do-while循环
特点:先执行在判断
while与do-while的区别:
执行次序不同
初始情况不满足循环条件时
while循环一次都不会执行
do-while循环不管任何情况都至少执行一次
2.4 for循环
常见问题:
编译错误:变量 i 没有初始化
缺少循环条件,死循环
循环变量不发生变化 ,会导致死循环
循环中缺少必要的循环控制,会导致死循环
作业
//生成游戏答案1~100
import java.util.Random;
Random ran=new Random();
int num=ran.nextInt(100)+1;
1.(使用while循环)随机生成一个1-100之间的数字num,循环让用户输入猜这
个数,
如果用户输入的数字大于num提示输入的数字比较大,
如果用户输入的数字小于num提示输入的数字比较小,
直到用户输入的数字和num相等为止,然后输出用户猜数的总次数
2.(使用for循环)打印出1-100之间所有不是7的倍数和不包含7的数字,并求和
3.(使用while循环)循环输入5个数,输完后显示这些数中有没有负数
4.(使用while循环)有一个有钱的神经病,他往银行里存钱,
第一天存1元,以后每天比前一天多存50%,完成下列计算任务
1)他存到第几天,当天存的钱会超过10元
5.(使用for循环)一个月(30天)后,他总共存了多少钱
6.(使用do-while循环)里有一只蜗牛,他白天往上爬5米,晚上掉3.5米,井深56.7米
计算蜗牛需要多少天才能从井底到爬出来
7.(使用for循环)计算2000年1月1日到2008年1月1日相距多少天。(注意闰年366,平年365)
作业一、
import java.util.Random;
import java.util.Scanner;
// 按两次 Shift 打开“随处搜索”对话框并输入 `show whitespaces`,
// 然后按 Enter 键。现在,您可以在代码中看到空格字符。
public class Main {
public static void main(String[] args) {
Random ran = new Random();
int num = ran.nextInt(100)+1;
int i = 1;
int num2;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数");
while(true) {
num2 = sc.nextInt();
if (num2 == num){
System.out.println("输入正确,一共输入了" +i +"次");
break;
}else if(num2>num){
System.out.println("输入的数字比较大");
}else {
System.out.println("输入的数字比较小");
}
i++;
}
}
}
作业二、1-100内7的倍数
public class multiple {
public static void main(String[] args) {
int num1 = 0;
int num2 = 0;
for (int i = 1;i<=100;i++){
if (i%7==0){
num1 +=i;
}else {
num2 +=i;
}
}
System.out.println("7的倍数之和" + num1 +"不是7的倍数之和" + num2);
}
}
作业三、判断五个数是否有负数
import java.util.Scanner;
public class fivenumber {
public static void main(String[] args) {
int[] arr = new int [5];
int i = 0;
Scanner sc = new Scanner(System.in);
while(i<5){
arr[i] = sc.nextInt();
i++;
}
System.out.println("" + arr[1]);
i = 0;
while(i<5){
if (arr[i] < 0){
System.out.println("有负数");
}
i++;
}
}
}
作业四、傻子存钱
public class day {
public static void main(String[] args) {
double mon =1;
double num = 0;
int day = 0;
while(num<=10){
num += mon;
mon*=1.5;
day++;
}
System.out.println("存了" + day + "天");
//30天后
num = 1;
for (int i = 0;i<30;i++){
num += mon;
mon*=1.5;
}
System.out.println("存了" + num + "钱");
}
}
作业五、蜗牛
public class pa {
public static void main(String[] args) {
double sum = 0;
int day = 1;
do{
sum += 5;
if (sum>=56.7){
break;
}
sum -= 3.5;
day++;
}while (true);
System.out.println(""+day);
}
}
作业五、2000到2008相距多少天
public class time {
public static void main(String[] args) {
int sum = 0;
// int day;
for (int year = 2000 ;year<2008;year++){
if (year%4 == 0 && year%100!=0 || year%400==0){
sum+=366;
}else{
sum+=365;
}
}
System.out.println("相距" + sum + "天");
}
}