Java学习第四天-循环(for、while、do while)

一、循环结构

1.1循环概念

1、生活中:(重复)一日三餐、太阳东升西落 打印50份试卷

2、开发中的循环:

A.需要多次重复的执行相同的或者是相似的操作的时候 就可以使用循环 来简化代码

3、常见的循环

for循环 while循环 do while循环

1.2for循环

1、语法:

for(初始化语句;循环条件判断;循环变量改变){

循环操作

}

2、案例:

每天跑步1200m 标准跑道一圈十400m 每天需要跑步 1200/400=3

3、分析:

从第一圈开始跑步 (初始化语句 i=1)

是否需要继续跑步 (循环条件判断 i

循环继续跑步 (循环的操作)

心里默默累加 (循环条件的改变)

停止跑步 (i=4 结束循环)

4、说明:

A.初始化语句有且仅执行一次

B.循环操作执行 0-n (n 满足循环条件判断额次数)

C.循环变量需要改变 避免死循环

D.循环四要素: 初始化语句 循环条件判断 循环操作 避免死循环(循环变量的改变)

流程:

1.3案例

step01需求

step02分析

A.使用键盘录入 实例化Scanner

B.使用for循环

A.初始化语句 i=1 循环条件判断 i

C.定义变量 来记录无门课程的成绩

step03代码

import java.util.Scanner; public class Test01 { public static void main(String[] args) { //实例化Scanner Scanner input = new Scanner(System.in); System.out.println("请输入学员姓名:"); String name = input.next(); //定义一个变量,计算总数 double sum = 0; //使用循环录入五门成绩 for (int i = 1 ; i <= 5 ; i ++){ System.out.println("请输入"+name+"第"+i+"门课程的成绩:"); int score = input.nextInt(); sum += score; } System.out.println(name+"的平均分:"+sum/5); } }

1.4案例

step01需求:

step02分析:

step03代码:

public class Test02 { public static void main(String[] args) { //定义一个变量表示高度 double h = 100; //定义一个变量表示路程 double sum = 0; for (int i=1;i<=10;i++){ //落下来的路程 sum=h+sum; //修改的高度 h=h/2; //反弹的路程 sum=h+sum; } System.out.println(sum); System.out.println(h); } }

1.5while循环

1、语法:

初始化语句;

while(循环条件的判断){

循环操作

循环变量改变

}

2、每天需要观看3部 “电影”

3、分析

从第一部观看(初始化语句 i=1)

是否需要继续观看(循环条件的判断 i

观看电影(循环操作)

心里默默累加(循环变量改变)i++

停止观看 结束循环 i=4

4、说明:

A.一定要避免死循环 循环变量需要发生改变

B.初始化语句可能不需要(情况比较少)

流程

1.6案例

step01 需求

step02分析

1、初始化语句 i=1

2、循环条件 i

3、循环操作求和

需要定义一个变量来求和

4、循环变量的改变 i++

step03代码

public class Test03 { public static void main(String[] args) { //初始化 int i = 1; //定义一个double类型的记录总数 double sum = 0; //使用while循环 while (i<=100){ if(i%3==0 && i%7!=0){ // sum=i+sum; sum+=i; System.out.println(i); } i++; } System.out.println(sum); } }

1.7案例

step01需求

steo02分析

step03代码

import java.util.Scanner; public class Test04 { public static void main(String[] args) { //实例化 Scanner input = new Scanner(System.in); //生成一个1-100的随机数 int random = (int) (Math.random()*100+1); //定义一个标记是否需要进行循环(初始化) boolean falg=true; while(falg){ System.out.println("请输入一个1-100的数:"); int num = input.nextInt(); //使用多分支if来判断是否猜中 if (num == random){ System.out.println("恭喜您猜对了!"); //猜中了就结束循环 falg= false; }else if (num>random){ System.out.println("您猜大了!"); }else { System.out.println("您猜小了!"); } } } }

1.8 do while循环

1、语法:

初始化语句

do{

循环操作

循环变量改变

}while(循环条件判断);

2、案例:为了表示对小泽老师的热爱 在控制台输出3边喜欢小泽老师

3、分析

第一遍开始(初始化语句)i++

是否继续(循环条件判断)i

打印小泽老师热爱(循环操作)

心里默默累加(循环变量改变)i++

终止打印 停止循环 i=4

4、说明:

A.do while 循环 至少执行一次循环操作 先执行操作 再进行判断

B.循环条件判断返回值必须是boolean类型

C.do while 循环 小括号后 必须以分号结尾

执行流程

代码:

1.9案例

step01需求

step02分析

step03代码

import java.util.Scanner; public class Test05 { public static void main(String[] args) { //实例化 Scanner input = new Scanner(System.in); System.out.println("欢迎来到MyShopping管理系统!"); System.out.println("*************************"); //使用do while循环 String type; do { System.out.println("请选择购买的商品"); System.out.println("1.小泽老师\t2.波老师\t3.仓老师"); int noId = input.nextInt(); switch (noId){ case 1: System.out.println("1.小泽老师\t1888"); break; case 2: System.out.println("2.波多老师\t1999"); break; case 3: System.out.println("3.仓老师\t2000"); break; default: System.out.println("没有此商品"); break; } System.out.println("是否继续购买?(y/n)"); type = input.next(); }while("y".equals(type)); System.out.println("程序结束!"); } }

1.9.1循环总结

1、常见的循环 for while do while

2、 for while 与do while 比较

for while 先判断 再执行循环操作

do while 先执行循环操作 再判断 至少循环一次

3、for与while 循环

循环次数固定的时候 使用for循环 大部分使用都是for循环

循环次数不固定的时候 使用while循环

4、三种循环的使用场景

for 先判断 再执行循环操作 循环次数固定的时候使用

while 先判断 再执行循环操作 循环次数不固定的时候使用

do while 先执行操作 再判断 至少执行一次循环的时候使用

5、循环四要素

A.初始化语句 B.循环条件判断 C.循环操作 D.避免死循环(循环变量的改变)

1.9.2结束循环

1、结束循环三个关键字

A.continue 结束本次循环 执行下一次循环

B.break 结束整个循环

C.return 通过结束方法来结束循环

1.9.3案例

step01需求

step02分析

step03代码

import java.util.Scanner; public class Test06 { public static void main(String[] args) { //实例化Scanner Scanner input = new Scanner(System.in); //定义两个变量表示正确的用户名和密码 String username = "老王舔狗"; String password = "5488"; //使用循环 for(int i = 1; i<= 3; i ++){ System.out.println("请输入用户名:"); String uname = input.next(); System.out.println("请输入密码:"); String upwd= input.next(); if (username.equals(uname)&&password.equals(upwd)){ System.out.println("登录成功!撒花!撒花!撒花!"); break; }else{ if(i==3){ System.out.println("您已经没有机会了!小心剁手!"); continue; } System.out.println("您还有"+(3-i)+"次机会"); } } } }

1.9.4死循环

1、概念:一直执行循环操作 没有限制条件停止 这就是死循环

2、常见死循环

3、死循环使用场景

A.在服务器端开发中 一直需要为客户端提供的服务 这种就是可以使用死循环

B.再即时通讯 需要一直监听好友发送的消息 也可以使用死循环

4、注意点:

在实际开发中 使用死循环的时候 一般会给其加上限制条件 用于结束循环

1.9.5嵌套循环

1、概念:一个完整的循环结构 另一个完整的循环结构(套娃)

2、注意点:所有的循环都是可以进行相互嵌套的 但是实际开发中 双重for循环使用比较多

3、嵌套for循环语法:

for(初始化语句1;循环条件判断2;循环改变3){

for(初始化语句4;循环条件判断5;循环变量6){

循环操作

}

}

4、案例:统计三个班级 每个班级的平均分(每个班级右有三个学生)

5、分析

外层for循环 遍历

内存for循环 遍历

6、总结

外层循环执行一次 内层循环执行一轮

执行流程

代码:

import java.util.Scanner; public class Test08 { public static void main(String[] args) { //实例化 Scanner input = new Scanner(System.in); for(int i= 1;i<=3;i++){ int sum = 0; for (int j= 1;j<=3;j++){ System.out.println("请输入第"+i+"班级的第"+j+"学生成绩"); int score = input.nextInt(); sum+=score; } System.out.println(sum/3); } } }

1.9.6案例

案例1

step01需求:使用嵌套for循环实现:

*****

*****

*****

*****

step02分析

A.外层循环遍历行

B.内层循环遍历列

step03代码

public class Test08 { public static void main(String[] args) { for (int i = 1;i<=5;i++){ for (int j= 1;j<=5;j++){ System.out.print("*"); } System.out.println(""); } } }

案例2

step01需求:

step02分析:

1.外层循环遍历行 i

2.内层循环便利列 j

3.关联条件 j

step03代码:

public class Test08 { 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)+"\t"); } System.out.println(""); } } }

1.9.8流程控制总结

1、流程控制分类

A.顺序执行

B.分支执行

C.循环执行

2、分支结构

单分支if if-else 多分支if 嵌套if switch

多分支if

需求:

分析:

代码:

import java.util.Scanner; public class Test09 { public static void main(String[] args) { //实例化Scanner Scanner input = new Scanner(System.in); System.out.println("计算面积"); boolean flag=true; do { System.out.println("请选择数字对应的功能:"); System.out.println("1.矩形\t2.三角形\t3.圆形\t4.退出系统!"); int noId = input.nextInt(); switch (noId){ case 1: System.out.println("请输入矩形的宽:"); int w= input.nextInt(); System.out.println("请输入矩形的长:"); int l= input.nextInt(); System.out.println("矩形的面积为:"+(w*l)); break; case 2: System.out.println("请输入三角形的底:"); int d= input.nextInt(); System.out.println("请输入三角形的高:"); int h1= input.nextInt(); System.out.println("三角形的面积为:"+(d*h1/2)); break; case 3: System.out.println("请输入圆的半径:"); int r = input.nextInt(); System.out.println("圆的面积为:"+(r*r*3.14)); break; case 4: System.out.println("退出系统,欢迎下次使用!"); flag= false; break; } }while(flag); } }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值