位运算和循环结构

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("谢谢参与");

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 顺序语句 语句:使用分号分隔的代码称作为一个语句。 注意:没有写任何代码只是一个分号的时候,也是一条语句,...
    哈哈哎呦喂阅读 423评论 0 0
  • 梁宁老师在《产品思维30讲》中的发刊词上说: 我觉得产品能力是人生的一个底层能力,拥有产品能力,能让你有一种踩在地...
    伯桐阅读 662评论 7 1
  • 天气越来越热,热的让人不想吃饭,每次都想吃点辣的才能吃下饭菜。我是一个特别喜欢吃辣的人,但也不能天天吃哦! 度娘说...
    樱桃526阅读 690评论 3 11
  • 无论别人多么优秀或差劲,我要做的都是不卑不亢,重点在于修身修己,而修身修己首要的事情就是关注和提升自己的每一天、每...
    MM水云间阅读 3,685评论 0 0
  • 臣服于冒犯,都是针对自己的感觉而言的。感觉是一种精神的升华,是蜕变后的喜悦,是由内而外的通透与舒畅。 内心的焦虑与...
    w小郭阅读 187评论 0 0