• 第六章 循环结构(二)


    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次均输入错误!");   

          }

        }

    }

  • 相关阅读:
    使用SpringAOP获取一次请求流经方法的调用次数和调用耗时
    疫苗之殇与理性应对之道
    【做更好的职场人】理性、弹性、开放的沟通
    使用IntelljIDEA生成接口的类继承图及装饰器模式
    订单导出应对大流量订单导出时的设计问题
    预发和线上的自动化对比工具微框架
    从实战角度看如何构建高质量的软件:一线工程师的一份质量手记
    代码问题及对策
    若干设计经验教训小记
    输入输出无依赖型函数的GroovySpock单测模板的自动生成工具(上)
  • 原文地址:https://www.cnblogs.com/lanliying/p/2818425.html
Copyright © 2020-2023  润新知