zoukankan      html  css  js  c++  java
  • day04逻辑运算符短路、多分支结构(if和switch)、循环结构、while循环

    复习

    1.运算符和表达式

    1)表达式

    2)算数运算符

      + - * / %

    3)关系运算符

      >  <  >=  <=  ==  !=

    4)逻辑运算符

      &&   ||    !

    5)字符串连接  

      +

    6)赋值运算符

      =

      +=  -=  *=  /=  %=

      int x=10;

      x+=5;//x=x+5;

    7)自增自减

      ++  --

      int x=1;

      int y=x++ ;

    8)三目运算符(条件运算符)

      int score=97;

      int money= score>=90 ? 200 : 5;

    2.分支结构

    1)单分支

      if(<条件>){

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

      }

      //无论条件真假都会运行的代码

    2)双分支

      if(<条件>){

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

      }else{

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

      }

      //无论条件真假都会运行的代码

    笔记

    1.逻辑运算符的短路特性

      &&   ||

    1)&&当左侧变量值为false时

      右侧无论什么值,结果都为false

      那么&&右侧就没必要运行了

    2)||当左侧变量值为true时

      右侧无论什么值,结果都为true

      那么||右侧就没必要运行了

    3)为什么会设计这样的特性

      当根据第一个条件已经能判断出结果

      ,就没必要运行第二个条件了

      能提高运行的效率

    2.多分支结构

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

    2)多重if结构

      小明考试成绩

      >=90    优秀

      >=80    良好

      >=60    及格

      <60     不及格

      格式

      if(<条件1>){

         //条件1为真时运行

      }else if(<条件2>){

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

      }else if(<条件3>){

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

      }else{

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

      }

      1.else if的数量是不限的

      2.else可以根据需要省略

      3.每个结构的{}都可能省略

      4.判断条件的顺序是要求的

    3)switch结构

      语法

      switch(<整数表达式>){

      case 1:

        //当整数表达式值为1时运行的语句

        break;

      case 2:

        //当整数表达式值为2时运行的语句

        break;

      .....

      default:

        //当整数表达式没有匹配值时运行

      }

      整数表达式

      可以是byteshortcharint

      JDK1.7开始

      可以编写字符串表达式,但是用处不大

      break关键字

      switch结构中运行到break

      会终止(跳出)swtich结构

      语法上没有强制要求必须编写break

      但是不编写break会出现case穿透现象

      根据小明考试的名次,来获得奖励

      1          苹果笔记本电脑

      2          ipad

      3          智能手表

      4          智能音箱

      其他名次:  没有奖励

    3.多分支结构小结

    1)多重if结构  

      特别适合于判断一个变量在

      某个范围时的情况

    2)switch结构

      使用灵活,运行效率高

      但是只能做等值判断

    3)小结:等值判断使用switch

           范围判断使用多重if

    4.循环结构

    1)什么是循环结构

      编写的代码执行多次的情况

      在程序中,反复的执行相同

                         或相似的代码

    2)为什么要使用循环结构

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

    3)怎么样使用循环

      循环的要素

      3.1)循环变量

      3.2)循环条件

      3.3)循环操作

      3.4)变量更新

    5.while循环

    1)语法结构

      while(<条件>){

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

      }

    代码整体缩进快捷键

    Ctrl+A;

    Ctrl+I;

    作业

    1)商场根据积分发不同类型的会员卡

      >=5000  黑金卡

      >=2000  铂金卡

      >=1000  金卡

      <1000   银卡

      用户输入小红会员卡的积分

      输出小红会员卡的类型

            Scanner scan=new Scanner(System.in);
            System.out.println("请输入小红的积分");
            int point=scan.nextInt();
            if(point>=5000) {
                System.out.println("黑金卡");
            }else if(point>=2000) {
                System.out.println("铂金卡");
            }else if(point>=1000) {
                System.out.println("金卡");
            }else {
                System.out.println("银卡");
            }
    View Code

    2)用户输入小红商场消费金额

      >500元 8折

      >100元 9折

      >50元  95折

      <=50元 不打折

      输出实际消费的金额

            Scanner scan=new Scanner(System.in);
            System.out.println("输入小红的消费金额");
            double money=scan.nextDouble();
            if(money>500) {
                money*=0.8;
            }else if(money>100) {
                money*=0.9;
            }else if(money>50) {
                money*=0.95;
            }
            System.out.println("消费金额为:"+money);
    View Code

    switch结构

    1)食堂每天有特价菜

      用户输入周几(1~7)

      1  ----   黄焖鸡

      2  ----   烤鸭

      3  ----   酸菜鱼

      4  ----   西红柿牛腩

      5  ----   孜然羊肉

      其他 ----   没有特价菜

            Scanner scan=new Scanner(System.in);
            System.out.println("请输入周几");
            int day=scan.nextInt();
            
            switch(day) {
            case 1:
                System.out.println("黄焖鸡");
                break;
            case 2:
                System.out.println("烤鸭");
                break;
            case 3:
                System.out.println("酸菜鱼");
                break;
            case 4:
                System.out.println("西红柿牛腩");
                break;
            case 5:
                System.out.println("孜然羊肉");
                break;
            default:    
                System.out.println("没有特价菜");
            }
    View Code

    2)用户输入一个月份

      输出这个月份有多少天

      1,3,5,7,8,10,12 ----31天

      4,6,9,11        ----30天

      2               ----平年28天,闰年29天

            Scanner scan=new Scanner(System.in);
            System.out.println("请输入年份");
            int year=scan.nextInt();
            System.out.println("请输入月份");
            int month=scan.nextInt();
            switch(month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                System.out.println("31天");
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                System.out.println("30天");
                break;
            case 2:
                if(year%4==0 && year%100!=0 || 
                                year%400==0) {
                   System.out.println("29天");
                }else {
                   System.out.println("28天");    
                }
            }
    View Code

    循环结构

    1)使用循环结构

      向控制台输出1~200

            int i=1;//循环变量
            while(i<=200) {//循环条件
                //循环操作
                System.out.println("第"+i+"次,猥琐发育,别浪~");
                i++;//变量更新
            }
            System.out.println("over");
    View Code

    2)使用循环结构

      向控制台输出2~100之间的所有偶数

            int i = 2;
            while (i <= 100) {
                if (i % 2 == 0) {
    
                    System.out.println(i);
                }
                i++;
            }
    View Code

    3)计算从1+2+3+4+5+...+99+100的和

      这样的题我们称之为累加操作

      只要需要累加的题目,

      都要定义变量sum

            int sum=0;
            int i=1;
            while(i<=100) {//sum:21 i:6
                sum+=i;
                i++;
            }
            System.out.println(sum);
    View Code

    4)计算1~100之间所有奇数的和

            int sum = 0;
            int i = 1;
            while (i <= 100) {
                
                if (i % 2 != 0) {
                    sum += i;
                    System.out.println(i);
                }
                i++;
            }
            
            System.out.println(sum);
    View Code

    5)小明上班第一个月工资4000

      每个月比上个月工资涨200

      计算输出12个月后小明  总共拿到了多少工资

            int sum=0;// 累加和
            int i=1;//表示月份
            int sal=4000;//工资
            while(i<=12) {
                sum+=sal;
                System.out.println("i:"+i+",sal:"+sal+",sum:"+sum);
                sal+=200;
                i++;
            }
            System.out.println(sum);
    View Code

    6)打印出1-100之间所有不是7的倍数

              和不包含7的数字,并求和

      i%7!=0 && i%10!=7 && i/10!=7

            int sum = 0;
            for (int i = 1; i <= 100; i++) {
                if(i%7 ==0 || i%10 == 7 || i/10 == 7){//注意:70-79容易漏掉
                    continue;
                }
                sum += i;
            }
            System.out.println(sum);
    View Code

    7)4.3循环输入5个数,

    输完后显示这些数中有没有负数

            Scanner scan=new Scanner(System.in);
            System.out.println("请输入5个数字");
            int flag=0;//立旗
            int i=1;
            while(i<=5) {
                int num=scan.nextInt();
                if(num<0) {
                    flag=1;
                }
                i++;
            }
            if(flag==0) {
                System.out.println("没有负数");
            }else {
                System.out.println("有负数");
            }
    View Code
  • 相关阅读:
    MillerRabin
    BM算法总结
    高斯消元处理自由变元的方法
    [IOI2019]矩形区域
    费用流处理负圈的方法
    回文自动机(PAM)总结
    [TJOI2017]龙舟
    luogu P2252 [SHOI2002]取石子游戏|【模板】威佐夫博弈
    博弈论
    构造
  • 原文地址:https://www.cnblogs.com/hxun/p/11541004.html
Copyright © 2011-2022 走看看