• java基础---循环结构(二)


    1.实现整数反转?

    public class Huiwen {

     public static void main(String[ ] args) {

        int val = 12345;

        int r_digit;

        System.out.print("反转后的整数是:");

               while(val!=0){

                       r_digit = val %10;

                       System.out.print(r_digit);

                       val = val /10;

                     }

            }

    }

    2为什么使用for循环?

    for比while更简洁

    3.什么是for循环?

    for( 表达式1;表达式2 ;表达式3){

    循环操作 ;

    }

    执行顺序:先1再2,循环操作,然后3,然后2 ,然后再循环操作,直到判断发生错误跳出循环

    for循环举例:循环输入某同学结业考试的5门课成绩

    import java.util.Scanner;

    public class Case2 {

    public static void main(String[] args) {

    Scanner input=new Scanner(System.in);

    // 项目:循环输入5门课程成绩

      String  n=null;  

      double s=0;

      double z=0;

      double p=0;

      System.out.println("输入学生姓名:");

      n=input.next();

      for(int i=0;i<5;i++){

        System.out.println("请输入第"+(i+1)+"个学生的成绩");

        s=input.nextDouble();

        z=z+s;

    }

        p=z/5;

        System.out.println("平均分"+p);

      }

    }

    心得:变量有学生名字、总分、单科分数、平均分

    4.For循环特点?

    循环次数固定

    举例:加法表

    import java.util.Scanner;

    public class Case3 {

    public static void main(String[] args){

    // 项目:加法表

    for (int i = 0,j=6; i<7; i++,j--) {

            System.out.println(i+"+"+j+"=6");

    }

    }

    }

    心得:多个变量.

    5.for循环常见问题?

    1.变量 i 没有初始化                               例如:for(;i<10;i++)

    2.编译正确,但是缺少循环条件,造成死循环          例如:for(int i=0;;i++)

    3.编译通过,但是循环变量的值无变化,造成死循环    例如:for(int i=0;i<10;)

    4.表达式全省略,无条件判断,循环变量无改变,应在循环体内设法结束循环;否则会造成死循环                   例如:for(;;)

    练习:求1~100之间不能被3整除的数之和

    import java.util.Scanner;

    public class Case4 {

    public static void main(String[] args) {

       Scanner input=new Scanner(System.in);

       //1-100之间不能被3整除的数之和

       int h=0;

       for(int i=1;i<=100;i++){

            if(i%3!=0){

           h=i+h;    

         }

    }

           System.out.println(h);

    }

    }

    6.为什么需要break语句?

    遇到break,立即跳出语句(前提是在循环语句和switch)

    7.什么是break语句?

    作用:改变程序控制流

    用于do-while、while、for中时,可跳出循环而执行循环后面的语句

    如何使用break语句?

    举例:循环录入,录入为负,停止录入。

    import java.util.Scanner;

    public class Case5 {

    public static void main(String[] args) {

        Scanner input=new Scanner(System.in);

        // 项目:循环输入5门课程成绩 遇到负数的时候停止

       String  n=null;  

       double s=0;

       double z=0;

       double p=0;

       int k=0;

       System.out.println("输入学生姓名:");

       n=input.next();

       for(int i=0;i<5;i++){

       System.out.println("请输入第"+(i+1)+"个学生的成绩");

       s=input.nextDouble();

       k++;

       if(s<0){

      break;

    }

       z=z+s;

    }

       if(k==5){

                p=z/5;

                System.out.println("平均分"+p);

    }else{

                 System.out.println("对不起,成绩不可以为负数.");

           }      

       }

    }

    8.为什么需要continue语句?

    遇到continue,进行下一次的循环

    9.什么是continue语句?

    continue :只能用在循环里

    10.continue 作用?

    跳过循环体中剩余的语句而执行下一次循环

    11.如何使用continue语句?

    举例:统计超过80分的人数

    import java.util.Scanner;

    public class Case6 {

    public static void main(String[] args) {

          Scanner input=new Scanner(System.in);

         //项目:计算班级超过80分以上的学生人数比例

         double s=0;         //分数

        int c80=0;           //80以上

        int e=0;             //学生人数

        System.out.println("输入班级总人数:");

        e=input.nextInt();

        for(int i=0;i<e;i++){

        System.out.print("请输入第"+(i+1)+"个学生的成绩:");

        s=input.nextDouble();

        if(s<80){

        continue;

        }

        c80++;

    }

          System.out.println("80分以上的学生人数:"+c80);

          System.out.println("80分以上的学生所占比例为:"+(c80/(s*0.01))+"%");   

    }

    }

    练习:循环录入会员信息

    import java.util.Scanner;

    public class Case7 {

    public static void main(String[] args) {

       Scanner input=new Scanner(System.in);

       System.out.println("MyShopping管理系统>客户信息管理>添加客户信息");

    //循环录入会员信息

       int hyh=0;

       String hysr=null;

       double hyjf=0;

       for (int i = 0; i < 3; i++) {

             System.out.println("请输入会员号(<4位整数>)");

              hyh=input.nextInt();

              if(!(hyh<=9999&&hyh>=1000)){

              continue;

              }

              System.out.println("请输入会员生日(<用2位整数表示>)");

              hysr=input.next();

              System.out.println("请输入会员积分:");

               hyjf=input.nextDouble();

    }

              System.out.println("您录入的会员信息是:"+" " +hyh+" "+ hysr+ +hyjf);

              System.out.println("程序结束");

        }

    }

    练习:验证用户登录信息(登陆3次不成功)

    import java.util.Scanner;

    public class Case8{

    public static void main(String[] args) {

         Scanner input = new Scanner(System.in);

        //登陆3次不成功

        String userName = "admin";

        String password = "admin";

        int k=3;

       for (int i = 0; i < 3; i++) {

          System.out.print("请输入用户名:");

          String uname=input.next();

          System.out.print("请输入密码:");

          String pwd =input.next();

          if(!(uname.equals(password)&&pwd.equals(userName))){

                   k--;

                   System.out.println("您还有"+k+"次机会");

                   continue;

          }else{

                  System.out.println("登陆成功!");

                  break;

    }

    }

           System.out.println("对不起,3次机会已用完");

    }

    }

    12.循环结构有哪些?

    while 、do-while、for

    无论哪一种循环结构,都有4个必不可少的部分:初始部分、循环条件、循环体、迭代部分

    1. while 循环:先判断,再执行

    2.do-while循环:先执行,再判断

    3.for循环:先判断,再执行

    13.二重循环?

    举例:

    import java.util.Scanner;

    public class Case9 {

    public static void main(String[] args) {

      Scanner input=new Scanner(System.in);

      for (int bj = 1; bj <= 3; bj++) {

      double cj=0;   

      double pj=0;

      double zf=0;

      System.out.println("请输入第"+bj+"个班级的成绩");

      for (int xy = 1; xy <= 4; xy++) {

        System.out.print("请输入第"+xy+"个学员的成绩:");

        cj=input.nextDouble();

        zf=cj+zf;

    }

        pj=zf/4;

        System.out.println("第"+bj+"个班级的平均成绩"+pj);

       }

      }

    }

    心得:外层循环控制班级,内层循环控制成绩

    作业:九九乘法表

    public class zuoye2 {

    public static void main(String[] args){

    //九九乘法表

    for (int i = 1; i < 9; i++) {

        for (int j = 1; j <= i; j++) {

                 System.out.print(j+"*"+i+"="+i*j+" ");

         }

        System.out.println();

        }

      }

    }

    作业: 5!+4!+...+1!

    import java.util.Scanner;

    public class zuoye3 {

    public static void main(String[] args) {

        Scanner input=new Scanner(System.in);

       // 5!+4!+...+1!

       System.out.println("请输入一个数字:");

       int num=input.nextInt();

        int sum=0;

        for (int j = 1; j <=num; j++) {

             int jiecheng=1;

             for (int i = 1; i <= j; i++) {

                   jiecheng=jiecheng*i;

             }

             sum=sum+jiecheng;

      }

           System.out.println("阶乘的和是"+sum);

      }

    }

    作业:三角形

    import java.util.Scanner;

    public class zuoye1 {

    public static void main(String[] args) {

         Scanner input=new Scanner(System.in);

         //三角形

         System.out.println("请输入行数");

         int row=input.nextInt();

         for (int i = 0; i < row+1; i++) {

        for (int j = 0; j < row-i; j++) {

        System.out.print("*");

       }

        System.out.println();

       }

      }

    }

    练习:在二重循环中使用continue

    import java.util.Scanner;

    public class Case1 {

    public static void main(String[] args) {

     {

         //计算3个班级大于85分以上的人数

        Scanner input=new Scanner(System.in);

        int rs85=0;     //80

        double cj=0;   //成绩

        for (int bj = 1; bj <= 3; bj++) {

              double pj=0;   //均分

              double zf=0;   //总分

              System.out.println("请输入第"+bj+"个班级的成绩");

              for (int xy = 1; xy <= 4; xy++) {

                    System.out.print("请输入第"+xy+"个学员的成绩:");

                    cj=input.nextDouble();

                    zf=cj+zf;

                    if (cj<85) {

                    continue;

                     }

                    rs85++;

    }

          pj=zf/4;

          System.out.println(""+bj+"个班级的平均成绩"+pj);

         }

          System.out.println("大于85的人数"+rs85);

         }

      }

    }

  • 相关阅读:
    哈希表,开放地址法之线性探测代码(JAVA)
    Java中几个关键字的意思
    java学习——File类操作
    Map三种遍历方法
    Spring Data Binding
    哈希表的基础理解
    选择排序
    map集合使用
    排序
    关于LinkedList
  • 原文地址:https://www.cnblogs.com/-lyr/p/9557212.html
Copyright © 2020-2023  润新知