5、位运算和流程控制和循环

一、上一个内容的复习  

  1、关系运算符、逻辑运算符(多个表达式的逻辑判断)
  2、 短路的与或
  3、条件运算符,用来做赋值操作
  4、位运算符:对表达式以二进制位单位进行运算
    十进制和二进制的转化

二、位运算符:  

    &按位与(先把数字计算成二进制的数,然后从右开始向做写,然后比对每一位的数值,有0就是0)
    |按位或(先把数字计算成二进制的数,然后从右开始向做写,然后比对每一位的数值,有1就是1)
    ^按位异或(先把数字计算成二进制的数,然后从右开始向做写,然后比对每一位的数值,相同为0,不同为1)
    <<左移:(7<<3:2向左移动三位 7*(2^3))
    >>右移:(7>>3:2向右移动三位 7/(2^3))

三、一些小的知识点

  1、工程-包(一般是公司域名的倒置)com.hoohui.test

  2、我们现在使用的一般都是java.util包中的工具,这是java专门的工具包

  3、流程控制要注意每一种情况都要考虑上,否则,程序一定会出现问题的

  4、小方块变暗,则程序执行完;红色则是程序正在执行

四、流程控制

  if(判断条件){  //执行语句块  }                                        if(判断条件){//执行语句块}else{//不成立,执行语句块}                   if(判断条件){//执行语句块}else if(判断条件){执行语句块}   

   注意:

      在实现功能的基础上去优化代码:两个相反的判断条件,我们可以用if-else
      else:表示的是否则,不能单独出现,必须要和if配对才能出现
      可以进行不断的嵌套

例子:张三考试成绩,大于90分,奖励他休息一天,否则老师罚他周末补课
/**
         * 张三考试成绩,大于90分,奖励他休息一天,否则老师罚他周末补课
         */
        System.out.println("请输入张三的成绩:");
        Scanner s = new Scanner(System.in);
        int score = s.nextInt();
        //原始
//        if(score>90) {
//            System.out.println("可以吃鸡");
//        }
//        if(!(score>90)) {
//            System.out.println("周末来补课");
//        }
        //优化
        if(score>90) {
            System.out.println("可以吃鸡");
        }else {
            System.out.println("周末来补课");
        }
例子:成绩>=80:良好
      成绩>=60:中等
      成绩<60:差
          /**考虑东西要严谨
         *     成绩>=80:良好
              成绩>=60:中等
              成绩<60:差
         */
        System.out.println("请输入张三的成绩:");
        Scanner s = new Scanner(System.in);
        int score = s.nextInt();
//        if(score>=80) {
//            System.out.println("良好");
//        }
////        if(score>=60) {修改程序,使之更加完善
//        if(score>=60&&score<80) {
//            System.out.println("中等");
//        }
//        if(score<60) {
//            System.out.println("差");
//        }
        //对于上述代码进行优化
        if(score>=80) {
            System.out.println("良好");
        }else {
            if(score>=60) {
                System.out.println("中等");
            }else {
                System.out.println("差");
            }
        }
        //引入else if的优化
        if(score>=80) {
            System.out.println("良好");
        }else if(score>=60) {
            System.out.println("中等");
        }else {
            System.out.println("差");
        }
//if嵌套
例子:学校举办运动会,百米赛跑,成绩13s以内,有资格进入决赛,
    根据性别,分别进入男子组和女子组。
    System.out.println("请输入张三的百米成绩:");
        Scanner s = new Scanner(System.in);
        int score = s.nextInt();
        System.out.println("请输入张三的性别:");
        String gender = s.next();
//        System.out.println(score+"--"+gender);
        if(score<13) {
            //注意判断:string的数据类型会否相等用equals,不用==
            if(gender.equals("男")) {
                System.out.println("进入男子组");
            }else {
                System.out.println("进入女子组");
            }
        }else {
            System.out.println("淘汰");
        }

  还有一个流程控制语句是switch-case:只能做等值判断,并且有支持的数据类型

  switch(要判断的变量){case 特定值://执行代码;break;default://执行语句;break;(最后一个的break可以省略)}

  只能做等值判断 ;记住要有break的语句进行截住

  

//只能做等值判断
//支持的数据类型:byte short int char (后两个是java 1.7以后才支持的)String 枚举
Scanner s = new Scanner(System.in); int num = s.nextInt(); switch(num) { case 10: System.out.println("中了三等奖"); break; case 20: System.out.println("中了二等奖"); break; default: System.out.println("没中奖"); }

五、循环

    重复做同样的意见事情

  

//例子:在控制台打印100遍“hello world”
    //2种方式:1、复制打印方式去打印2、用循环语句进行优化代码
    //定义一个int 类型的变量,
        for(int i=0;i<100;i++) {
            System.out.println(i + "hello world");
        }

  

      一共有4种循环
        for for-each(增强型for循环) while do-while

        1*for循环
          for(定义循环变量,循环条件,迭代条件){
            //循环语句(也叫循环体)
          }
        2*循环四要素
          初始化循环变量
          循环条件
          迭代(更新循环变量)
          循环体

    初始化循环变量,只执行一次;
    判断循环条件是否成立,如果成立,执行循环体,如果不成立,跳出循环:执行多次
    更新循环变量:多次执行
    循环体:多次执行

    

   

posted @ 2019-07-16 09:59  DHR~小白  阅读(403)  评论(0编辑  收藏  举报