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);

     }

  }

}

原文地址:https://www.cnblogs.com/-lyr/p/9557212.html