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("您录入的会员信息是:"+"\n" +hyh+"\n"+ 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个必不可少的部分:初始部分、循环条件、

循环体、迭代部分

n while 循环:先判断,再执行

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

n 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+"\t");

}

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

}

 

}

}

猜你喜欢

转载自www.cnblogs.com/-lyr/p/9557212.html
今日推荐