第六章 循环结构(二)
6.1、for循环
6.1.1、为什么需要for循环
答:public class whileDemo{
public static void main(String[]args){
int i=0;
while(i<100){
System.out.println("好好学习,天天向上");
i++;
}
}
}
实例二:public class ForDemo{
public static void main(String[]args){
for(int i=0;i<100;i++){
System.out.println("好好学习,天天向上");
}
}
}
通过对比,我们可以得出,在解决固定循环次数时,可以首选for循环。
6.1.2、什么是for循环
答:for(表达式1;表达式2;表达式3){
//循环体
}
结论:for关键字后面的括号的三个表达式必须用";"隔开。
6.1.3、如何使用for循环
答:import java.util.*;
public class AvergeScore{
public static void main(String[]main){
int score;
int sum=0;
double avg=0.0;
Scanner input=new Scanner(System.in);
System.out.println("输入学生姓名:");
String name=input.next();
for(int i=0;i<5;i++){
System.out.println("请输入5门功课中的第"+(i+1)+"门课的成绩:");
score=input.nextInt();
sum=sum+score;
}
avg=sum/5;
System.out.println(name+"的平均分是"+avg);
}
}
6.1.4、上机练习
答:import java.util.*;
public class AgeRate{
public static main(String[]args){
int young=0;
int age=0;
Scanner input=new Scanner(System.in);
for(int i=0;i<10;i++){
System.out.println("请输入第"+(i+1)+位顾客的年龄:);
age=input.nextInt();
if(age>0&&age<=30){
young++;
}
}
System.out.println("30岁以下的比例是:"+young/10.0*100+"%");
System.out.println("30岁以上的比例是:"+(1-young/10.0)*100+"%");
}
}
6.2、跳转语句
6.2.1、break语句
答:import java.util.*;
public class BreakDemo{
public static void main(String[]args){
int score;int sun=0;int avg;
boolean isNegative=false;
Scanner input =new Scanner(System.in);
System.out.println("学生姓名:");
String name=input.next();
for(int i=0;i<5;i++){
System.out.println("请输入第"+(i+1)+"门课的成绩:");
score=input.nextInt();
if(score<0){
isNegative=true;
break;
}
sum=sum+score;
}
if(isNegative){
System.out.println("输入错误,请重新输入:");
}else{
avg=sum/5;
System.out.println(name+"的平均分是:"+avg);
}
}
}
6.2.2、continue语句
答:import java.util.*;
public class BreakDemo{
public static void main(String[]args){
int score;int total;int num=0;
Scanner input =new Scanner(System.in);
System.out.println("请输入班级总人数:");
total=input.nextInt();
for(int i=0;i<total;i++){
System.out.println("请输入第"+(i+1)+"为学生的成绩:");
score=input.nextInt();
if(score<80){
continue;
}
num++;
}
System.out.println("80分以上的学生人数是:"+num);
double rate=(double) num/total *100;
System.out.println("80分以上的学生所占的比例为:"+rate+"%");
}
}
6.3、上机练习
答:import java.util.*;
public class AddCustomer{
public static void main(String[]args){
System.out.println("欢迎登陆MySopping系统》客户信息管理》添加客户信息");
int custNo=0;
String biorthday;
int points=0;
Scanner input=new Scanner(System.in);
for(int i=0;i<3;i++){
System.out.print("请输入会员号(<4位整数>):");
custNo = input.nextInt();
System.out.print("请输入会员生日(月/日<用两位整数表示>):");
birthday = input.next();
System.out.print("请输入会员积分:");
points = input.nextInt();
if(custNo<1000||custNO>9999){
System.out.println("客户号" +custNo+ "是无效会员号!");
System.out.println("录入信息失败\n");
continue;
}
System.out.println("您录入的会员信息是:");
System.out.println(custNo+ " " +birthday+ " " +points+ "\n");
}
System.out.println("程序结束!");
}
}
6.4、循环结构总结
答:while、do-while和for循环的对比:
语法不同:
while(条件){
//循环体
}
do{
//循环体
}while(条件);
for(初始化;条件;迭代){
//循环体
}
执行顺序不同:
while循环:向进行条件判断,在执行循环体。如果条件不成立,对出循环。
do-while循环:先执行循环体,在进行条件判断,循环体至少执行一次。
for循环:先执行初始化部分,在进行条件判断,然后执行循环体,最后进行迭代部分的计算,如果条件不成立跳出循环。
适用情况不同:
在解决问题时,对于循环次数确定的情况,通常选用for循环。对由于循环次数比确定的情况,通常选用while或do-while循环。
本章总结
答:break语句终止某个循环,程序跳转到循环块外的下一条语句。
continue语句是跳出本次循环,进入下一次循环。
本章作业
答:public class 鸡兔同笼 {
public static void main(String[]args){
int num=35; //头的数量
int sum=94; //脚的数量
for(int i=0,j=(num-i);i<num;i++,j--){
if(i*2+j*4==sum){
System.out.println("鸡的数量是:"+i);
System.out.println("兔子的数量是:"+j);
}
}
}
}
实例二:import java.util.Scanner;
public class LoginCheck {
/** * 验证用户名和密码(根据匹配情况执行不同操作) */
public static void main(String[] args) {
int i = 0; String userName; String password;
Scanner input = new Scanner(System.in);
for(i = 0; i < 3; i++){
System.out.print("请输入用户名:");
userName = input.next();
System.out.print("请输入密码:");
password = input.next();
if("jim".equals(userName) && "123456".equals(password)){ //匹配
System.out.println("欢迎登录MyShopping系统!");
break;
}else{ //不匹配
System.out.println("输入错误!您还有" +(2-i)+ "次机会!\n");
continue;
}
}
if(i == 3){ //3次都不匹配
System.out.println("对不起,您3次均输入错误!");
}
}
}