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*循环四要素
          初始化循环变量
          循环条件
          迭代(更新循环变量)
          循环体

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

    

   

原文地址:https://www.cnblogs.com/dhrwawa/p/11193094.html

时间: 2024-10-08 20:04:15

5、位运算和循环的相关文章

shell脚本之位运算+for循环+返回值承接

用shell脚本实现某个寄存器的某几位设置 坑位1: 开发板上不认(ubuntu上可以) for (( i=0;i<6;i++ )) do done 换成: for i in `seq 0 6` do done 坑位2: 返回值承接用#?时默认只截取低8位 setbits $1 $2 $3 $4regv=$?printf "regv= %#x\n" $regv 发现只剩低八位 所以,换种承接方式吧: regv=`regread $1` 这种方式是直接将命令执行或在屏幕上输出的东西

2015.8.5 循环与函数、位运算

注意点: 1.只有整形才可以用switch. 2.case后面的常量不可以重复 3.default语句可以放在任意位置,但是后面不可以省略break: while: 1.用来处理一些重复执行的操作 2.确定循环终止的条件 (1)在循环开始之前,需要定义一个循环控制变量并将其初始 (2)确定循环的约束条件 (3)在每一次循环结束的时候,在循环中,要去改变循环控制变量的值,让它不间断接近约束条件 注意点: 1.在c语言总任何树枝都有真假性,只有0为 假,其它都为真 2.注意不把==和=混淆了,为了避

c 指针 及其位运算循环移动拔河比赛问题代码

week_2_day1_7.7 周一//用字符数组 来实现 字母大小写转换#include<stdio.h>void desc( char *a ,int n){    char  *i = a;    int x = 0 ;    for ( x = 0; x < n ;x ++ )    {                    if ( *i  >= 97 )                        *i-=32;        i++;    }}int main(v

JavaSE学习(三):按位运算—数据结构(顺序、分支、循环)

  第一节 按位运算 1.1按位运算符&  | 1.1.1按位运算符可作算术运算 做算术运算先将十进制转为二进制数,再按位计算,按位与全部为1,才为1,只要有0则为0:按位或只要有1则为1,全部为0才为0.最后按位输出再转为十进制. 7&3 = 3  -----  0111 & 0011 == 0011  3 7|3 = 7  -----  0111 & 0011 == 0011  7 1.1.2按位运算符可作逻辑运算 按位与&和按位或| 做逻辑功能时,与逻辑与&a

位运算常用操作总结位运算应用口诀清零取反要用与,某位置一可用或若要取反和交换,轻轻松松用异或移位运

来源:http://www.educity.cn/wenda/381487.html 位运算常用操作总结位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形.     2 " $amp;     3 "$amp;>amp;>quot;$右移:右边的位被挤掉.对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统.     4 "

用位运算实现十进制转换为二进制

代码如下: 1 #include <iostream> //将十进制数转化为二进制数,位运算的取位操作 2 using namespace std; 3 int main() 4 { 5 unsigned short i; 6 cout << "请输入一个小于65536的正整数" << endl; 7 cin >> i; 8 for(int j=15;j>=0;j--) 9 { 10 if ( i & ( 1 <<

137.Single Number II(法1排序法2STL容器map哈希法3位运算法4改进的位运算)

Given an array of integers, every element appears three timesexcept for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement itwithout using extra memory? HideTags Bit Manipulation #pragma once

N皇后问题(位运算实现)

本文参考Matrix67的位运算相关的博文. 顺道列出Matrix67的位运算及其使用技巧 (一) (二) (三) (四),很不错的文章,非常值得一看. 主要就其中的N皇后问题,给出C++位运算实现版本以及注释分析. 皇后问题很经典,就不再赘述问题本身,解决皇后问题,一般采用的都是深搜DFS+回溯的方法,按照行(列)的顺序枚举每一个可以放置的情况,然后进行冲突判断,当前的放置是否合法,合法就继续搜索下一层,不合法就搜索就回溯.直到,找到一个合法的解,每一层都有一个皇后并且不发生冲突,这时候,放置

nyist oj 138 找球号(二)(hash 表+位运算)

找球号(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 在某一国度里流行着一种游戏.游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=i<=100000000),编号可重复,还有一个空箱子,现在有两种动作:一种是"ADD",表示向空箱子里放m(0<m<=100)个球,另一种是"QUERY",表示说出M(0<M<=100)个随机整数ki(0<=ki<=100000100),分