day05生成随机数、do-while循环、for循环、循环流控(break和continue)、循环嵌套

复习

1.多重if

  一个条件触发的情况在3种或以上时

  if(<条件1>){

      //条件1为真时运行

  }else if(<条件2>){

      //条件1为假,条件2为真时运行

  }else if(<条件3>){

      //条件1,2为假,条件3为真时运行

  }else{

      //条件1,2,3均为假时运行

  }

 

2.switch结构

  switch(<整数表达式>){

  case 1:

     //整数表达式结果为1时运行

     break;

  case 2:

     //整数表达式结果为2时运行

     break;

  ....

  default:

     //整数表达式没有匹配结果时运行

  }

3.多种结构的优缺点

1)范围判断用多重if

2)等值判断用switch

 

4.循环结构

1)什么是循环

  反复运行相同或相似的代码

2)为什么使用循环

  减少代码冗余,提高程序的可维护性

3)循环的要素

  3.1)循环变量

  3.2)循环条件

  3.3)循环操作

  3.4)变量更新

 

5.while循环

  while(<条件>){

     //条件为真时运行的代码

  }

 

笔记

1.生成随机数

  1.1)import java.util.Random;

  1.2)Random ran=new Random();

  1.3)生成整数

      int xxx=ran.nextInt(<随机范围>);

      xxx可能出现的数值是

      0  ~  随机范围-1

      例如ran.nextInt(10)

      可能产生的数值就是0~9

 

2.do-while循环

  语法

 

  do{

     //条件为真时运行的代码

  }while(<条件>);

 

3.whiledo-while循环的区别

1)while循环:

  先判断,后执行

  初始条件不满足,一次都不执行

2)do-while循环:

  先执行,后判断

  初始条件不满足,也会至少执行一次

3)理解时,理解为:

  while循环比do-while循环

  多判断一次

 

4.for循环

1)for循环语法

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

      //循环体

  }

  1.1)

  表达式1:声明循环变量

  表达式2:循环条件

  表达式3:变量的更新

 

  1.2)

  表达式1,2,3,均可以省略

  表达式2省略默认为true

  但是两个 ; 不能省略

  

  1.3)

  表达式1中可以声明多个变量,

                       ,分隔

 

  表达式3中可以多个变量的更新

                       ,分隔

  1.4)for循环适合处理

      循环次数固定的循环

 

5.循环结构小结

1)循环次数确定的使用for

2)循环次数不确定的使用

              while或do-while

  2.1)当......的时候

      使用while

 

  2.2)直到.....的时候

      使用do-while

 

6.循环流控

1)break关键字

  switch中的break能终止switch结构

  循环结构中的break能终止循环结构

  while,do-while,for均可以使用

 

2)continue关键字

  只能使用在循环结构中

  循环中运行到continue的效果是:

  跳过本次循环没有运行的代码

  继续运行下次循环

 

7.循环嵌套

1)什么是循环嵌套

  一个循环结构中

  又包含另一个完整的循环结构

2)循环嵌套的注意事项

  2.1)外层循环循环一次

      内存循环循环一遍

  2.2)流控关键字(break,continue)

      在内层循环中

      只影响内层循环

  2.3)while\dowhile\for

      能够随意相互嵌套

  2.4)循环嵌套层次不限

      应该避免过多层次的嵌套

 

 

 

作业

1)机票价格按照淡季旺季、

头等舱和经济舱收费、

输入机票原价、月份和1头等舱或2经济舱,

其中旺季(5-10月)

头等舱9折,经济舱85折,

淡季(11月到来年4月)

头等舱7折,经济舱65折,

最终输出机票价格

        Scanner scan=new Scanner(System.in);
        System.out.println("请输入机票原价");
        double price=scan.nextDouble();
        System.out.println("请输入月份");
        int month=scan.nextInt();
        System.out.println("舱级(1.头等舱 2.经济舱)");
        int level=scan.nextInt();
        //旺季
        if(month>=5 && month<=10) {//头等舱
            if(level==1) {
                price*=0.9;
            }else {//经济舱
                price*=0.85;
            }
        }else {//淡季
            if(level==1) {//头等舱
                price*=0.7;
            }else {
                price*=0.65;
            }
        }
        System.out.println("折后机票价格为:"+price);
View Code

 

do-while

1)使用do-while循环编写

  小明第一个月工资4000

  以后每个月比上个月多200

  计算12个月小明总共能拿到多少工资

 

        int sum=0;
        int i=1;
        int sal=4000;
        do {
            sum+=sal;
            sal+=200;
            i++;
        }while(i<=12);
        System.out.println(sum);
View Code

 

2)使用do-while循环编写

  小明第一个月工资4000

  以后每个月比上个月多200

  当小明总共拿到的工资超过

  150000时需要多少个月

 

        int i=1;
        int sum=0;
        int sal=4000;
        do {
            sum+=sal;
            System.out.println("sum:"+sum+",i:"+i+",sal:"+sal);
            sal+=200;
            i++;
        }while(sum<150000);
        
        System.out.println(i-1);
View Code

 

for循环练习

1)用户在循环中输入5个学生的成绩

  计算他们的平均分

 

        Scanner scan=new Scanner(System.in);
        int sum=0;
        for(int i=1;i<=5;i++) {
            System.out.println("请输入第"+i+"位学生成绩");
            int score=scan.nextInt();
            sum+=score;
        }
        double avg=1.0*sum/5;
        System.out.println("平均分为:"+avg);
View Code

 

break

1)编写一个循环      提示:

循环中用户输入      while(true){

数字如果用户输入的      ...                  while(true){

数字是负数          }

  循环结束          

 

        Scanner scan=new Scanner(System.in);
        //用户输入负数循环退出
        while(true) {
            System.out.println("请输入数字");
            int num=scan.nextInt();
            if(num<0) {
                //num小于0,退出
                break;
            }
            
        }
View Code

 

2)编写一个循环

  循环中用户输入密码(int类型)

  如果用户输入的是123456(正确)

  循环结束

  并输出循环了几次

 

        Scanner scan=new Scanner(System.in);
        int i=1;
        do {
            System.out.println("请输入密码");
            int pwd=scan.nextInt();
            //密码正确循环退出
            if(pwd==123456) {
                break;
            }
            System.out.println("密码错误,重新输入");
            i++;
        }while(true);
        System.out.println("总共输入了"+i+"次");
View Code

 

循环嵌套

1)使用循环嵌套实现输出

  九九乘法表

 

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

            for(int j=1;j<=i;j++) {
                System.out.print(
                        j+"×"+i+"="+i*j+" ");
            }
            System.out.println();
        }
View Code

 

posted @ 2019-09-18 12:20  佩奇er  阅读(626)  评论(0编辑  收藏  举报