美文网首页
位运算和循环结构

位运算和循环结构

作者: Iremember_e62f | 来源:发表于2018-09-21 11:22 被阅读0次

    1.位运算符。

    (1)<<左移(变大):左边的数是操作数,右边的数位移的个数。

    5<<2:  -》5*2*2

    a.5转换2进制数:101

    b.转成2进制数后,不足八位数补足8位:00000101

    c,将八位的2进制数,左边移除2位:000101

    d.移除位数后,不足八位数,右补0:00010100

    e.将最终的二进制数转换为10进制数:20

    (2)>>右移(变小):左边的数是操作数,右边的数位移的个数。

    5>>2:

    a.5转换2进制数:101

    b.转成2进制数后,不足八位数补足8位:00000101

    c,将八位的2进制数,右边移除2位:000001

    d.移除位数后,不足八位数,左补0:00000001

    e.将最终的二进制数转换为10进制数:1

    (3)& 位与: 位数对齐运算,有0则为0,全1才为1

    5&2:

    a.将左右两边的数转换为二进制数:101, 10

    b,将二进制数不足八位转换为八位数将上下对齐:

    00000101

    00000010

    c.位数对齐运算,有0则为0,全1才为1:        0000000 0

    d.将结果的二进制数转换10进制:0

    (4)|  位或: 位数对齐运算,有1则为1,全0才为0

    5|2:

    a.将左右两边的数转换为二进制数:101, 10

    b,将二进制数不足八位转换为八位数将上下对齐:

    00000101

    00000010

    c.位数对齐运算,有1则为1,全0才为0:    00000 1 1 1

    d.将结果的二进制数转换10进制:7

    (5)^ 位异或: 位数对齐运算,相同为0,不同为1

    5^2:

    a.将左右两边的数转换为二进制数:101, 10

    b,将二进制数不足八位转换为八位数将上下对齐:

    00000101

    00000010

    c.位数对齐运算,相同为0,不同为1:00000 1 11

    d.将结果的二进制数转换10进制:7

    2.程序中的结构:顺序结构,选择结构,循环结构。

    注:字符串与字符串的比较: 字符串变量名.equals("比较的值");

    其它类型比较(int,double,boolean):  变量名1==变量名2;

    3.if结构:单分支的选择问题

    语法:if(条件){

    语句块:

    eg:int today=5;

    if(today==5){

    System.out.println("考试");

    }

    4.if-else结构:双分支问题

    语法:if(条件){//true

    语句块1;

    }else{//false

    语句块2;

    }

    eg:System.out.println("这周考试第一名的同学是男生吗?(y/n)");

    //从键盘上接收值并用变量存下来

    String answer=input.next();

    //用if-else结构

    if(answer.equals("y")){

    System.out.println("恭喜你获得第一名,给你介绍一个女朋友");

    }else{

    System.out.println("恭喜你获得第一名,给你介绍一个男朋友");

    }

    5.多重if结构:多分支问题。最多只能执行一个分支。

    语法:if(条件1){

    语句块1;

      }else if(条件2){

    语句块2;

      }else if(条件3){

    语句块3;

      }else{

      }

    注:(1)在多重if选择结构中,if块有且仅有一个,else if块可以有1到多个,else有且仅有0个到1个。

    (2)在多重if选择结构中,如果是作区间判断问题,分支之间不能互换位置。

    (3)在多重if选择结构中,如果是等值判断问题,分支之间可以互换位置。

    eg:System.out.println("请输入考试成绩:");

    //从键盘上接收考试成绩并用变量存下来

    double score=input.nextDouble();

    //用多重if选择结构

    if(score>=90){

    System.out.println("优");

    }else if(score>=80){

    System.out.println("良");

    }else if(score>=60){

    System.out.println("合格");

    }else{

    System.out.println("不合格,抄写代码");

    }

    6.Switch结构:多分支等值判断问题

    语法:switch(表达式){

    case 值1:

    语句块1;

    break;//跳出当前结构

    case 值2:

    语句块2;

    break;

    case 值3:

    语句块3;

    break;

    ...

    default:

    break;

    注:(1)表达式的数据类型:byte,short,int,char,String(在Jdk1.6以上版本支持)。

    (2)case块的数量没限制,default块有且仅0个到1个。在同一个Switch结构中,case后面的常量 值不可以相同。

    (3)一般情况下,每个case块后面都有break;如果case块中没有break,它只判断第一次,一直会执行,直到遇到break或遇到结尾的}才会执行完。break;//跳出当前结构。

    (4)case块或default块换个位置无影响。

    eg:System.out.println("请输入今天是星期几?(1-7)");

    //从键盘上接收一个int值并用变量存

    int today=input.nextInt();

    switch(today){

    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;

    case 6:

    System.out.println("凉面");

    break;

    default:

    System.out.println("喝水");

    break;

    }

    7.多重if VS  switch

    相同点:都可以解决多分支的等值判断问题。

    不同点:switch只可以用来解决多分支的等值判断问题。多重if可以用来解决所有多分支问题。

    多分支的区间判断的问题只能用多重if。

    8.嵌套选择结构:在一个选择结构中可以完整嵌套另一个选择结构。嵌套要正确。

    嵌套的层次无要求。可以嵌套任意层。

    eg:System.out.println("请输入你的成绩:");

    double time=input.nextDouble();

    //嵌套的选择结构

    if(time<10){

    System.out.println("请输入你的性别:");

    String sex=input.next();

    if(sex.equals("男")){

    System.out.println("恭喜你,进入男子级决赛");

    }else{

    System.out.println("恭喜你,进入女子级决赛");

    }

    }else{

    System.out.println("谢谢参与");

    }

    相关文章

      网友评论

          本文标题:位运算和循环结构

          本文链接:https://www.haomeiwen.com/subject/cyjanftx.html