一、知识点
2.循环结构
2.1.循环结构三种方式: for循环,while循环,dowhile循环
2.2.for循环的语法
for(表达式一;表达式二; 表达式三){
循环体内容;
}
执行顺序:1 执行表达1 , 2 执行表达二进行判断如果判断为真,3 执行循环体 4,执行表达式三 , 5 执行表达式二执行判断如果判断为真,则重复3,4,5步骤,如果判断为假则退出for循环
表达式一:循环条件的初始信息
表达式二:循环的判断条件(必须要产生一个 boolean值才能判断)
表达式三:循环变量的值变化(只有循环变量的值发生了变化,才有可能让表达式二的结果为false,停止循环,否则就是死循环)
在循环中容易出现累加求和的内容,累加求和同类型的代码必须要赋初始值
//输入10为同学的成绩,计算总成绩和平均成绩
int sum =0;
for(int i = 0;i< 10;i++){
System.out.println(“第”+(i+1)+“学生的成绩”);
int score = input.nextInt();
sum += score; //累加求和sum = sum +score;
}
int avg = sum / 10 ;
System.out.println(“总成绩是:” + sum +",平均成绩是:"+ avg);
//鸡兔同笼:上有头35只,下有脚94 问鸡兔各几
//默认i 就是是鸡的个数, 则兔子的个数就是 35 - i;
//然后通过判断脚的个数是否等于94即可得出鸡兔各几个
for(int i =1;i<=35;i++){
int tu = 35-i;
if(i*2 + tu*4 == 94){
System.out.println("鸡的个数:"+ i+",兔子的个数是:"+tu);
}
}
注意点:一般用于固定次数的循环
在for循环中三个表达式的位置是可以出现在其它地方的,但分号不能去除
//for循环的的变体(for循环中三个表达式中的位置可以省略,但分号不能省略)
int i = 1;
for(; ?{
if(i< 35){
}
i++;
}
2.3.在循环结构中三个关键字的用法:break,continue,return;
2.3.1.break; 终止循环,进入循环之后的代码执行
//break的使用,输入10为同学的成绩,计算总成绩和平均成绩(如果存在异常数据,则终止循环)
int sum = 0;
boolean isRight = true;
for(int i = 0;i<10;i++){
System.out.println(“请输入第”+(i+1)+“同学的成绩”);
int score = input.nextInt();
if(score < 0){
isRight = false;
break;
}
sum += score; //累加求和
}
if(isRight == true){
int avg = sum / 10;
System.out.println(“总成绩是:”+ sum +",平均成绩是:" + avg);
}else{
System.out.println(“输入的成绩不能为负数”);
}
2.3.2.Continue;结束本次循环,进入下一次循环
//break的使用,输入10为同学的成绩,(如果存在异常数据,则终止循环)
//统计80分之上的同学的总成绩和平均成绩
int sum = 0;
boolean isRight = true;
int count=0; //用于记录80分以上的学生人数
for(int i = 0;i<10;i++){
System.out.println(“请输入第”+(i+1)+“同学的成绩”);
int score = input.nextInt();
if(score < 0){
isRight = false;
break;
}
if(score<80){
continue; //本次循环到此到此结束,进入下一次循环
}
sum += score; //累加求和
count++; //人数加一
}
if(isRight == true){
int avg = sum / 10;
System.out.println("总成绩是:"+ sum +",平均成绩是:" + avg);
}else{
System.out.println("输入的成绩不能为负数");
}
2.3.3.Return 返回,一般用于方法的的结束,虽然也可以用于循环以及判断中,但结束的是整个方法
2.3.4.简单案例(用户登录的时候一共有三次机会,如果成功则循环结束)
//用户输入三次登录的机会
String old_userid = “赵丽丽”;
String old_userpwd = “123456”;
for(int i = 0;i<3;i++){
System.out.println("请输入用户名:");
String userid = input.nextLine();
System.out.println("请输入用户密码:");
String userpwd = input.nextLine();
//判断输入的是否正确
if(userid.equals(old_userid) && userpwd.equals(old_userpwd)){
System.out.println("登录成功,欢迎"+ userid);
break; //输入正确结束循环
}else if(i<2) {
System.out.println("今日还有"+(2-i)+"次机会");
}else{
System.out.println("三次机会以耗尽");
}
}
二、综合练习——幸运抽奖
任务:模拟注册登录幸运抽奖全过程
主要功能
注册
登录
幸运抽奖
阶段1:实现菜单的输出显示
需求说明
输出菜单
选择菜单编号,输出菜单信息
如果编号选择错误,输出“您的输入有误!”
菜单输出的显示结果
阶段2:实现循环执行功能
需求说明
系统询问用户是否继续
如果用户选择继续,则可以继续选择菜单,否则程序结束,退出系统
实现循环执行功能
阶段3:实现注册功能
需求说明
输入用户名和密码,系统产生4位随机数作为卡号。
注册成功,显示注册信息并修改注册标识为true
注册功能的运行结果
阶段4:实现登录功能
需求说明
输入注册时的用户名和密码,登录成功,系统提示欢迎信息
如果用户名和密码输入错误,提示用户继续输入,最多有3次输入机会
登录功能的运行结果
阶段5:实现幸运抽奖功能
需求说明
登录成功后,用户选择幸运抽奖菜单,进入幸运抽奖功能
输入会员卡号,系统生成5个4位随机数作为幸运数字
生成随机数的号码: int num =(int)(Math.random()*8999+1000);
如果会员卡号是其中之一,则成为本日幸运会员;否则不是幸运会员
幸运抽奖功能的运行结果