悠然哈哈哈

导航

第六章 循环结构(二)

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

      }

    }

}

posted on 2012-12-14 17:34  悠然886  阅读(388)  评论(0编辑  收藏  举报