第3章 运算符、表达式和语句_第1页
第3章 运算符、表达式和语句_第2页
第3章 运算符、表达式和语句_第3页
第3章 运算符、表达式和语句_第4页
第3章 运算符、表达式和语句_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章运算符、表达式和语句3.1运算符与表达式算术运算符关系运算符逻辑运算符赋值运算符位运算符instanceof位移运算符三元运算符算术运算符主要用于算术表达式中。+加法运算符,也可做字符的连接用途。-减法运算符。*乘法运算符。/除法运算符。%求余运算符。++递增--递减算术运算符的使用示例publicclassarithmatico{publicstaticvoidmain(String

args[]){inta=5+4;intb=a*2;Sytem.out.println(“a=”+a);Sytem.out.println(“b=”+b);}}自增,自减运算符++x 表示在使用x之前,先使x的值加1;--x 表示在使用x之前,先使x的值减1;x++

表示在使用x之后,再使x的值加1;--x

表示在使用x之后,再使x的值减1;例x的原值是5那么y=++x;先把x+1,再给y赋值为6;而y=x++;则是先5赋值给y,再x的值增加为6算数混合运算的精度doublebyteshortcharintlongfloat精度由低到高当表达式中有不同类型的值时,按最高精度计算。关系运算符关系运算符是用来确定一个操作数和另一个操作数之间的关系,既然描述的是关系,那结果就为对或不对。在Java里就表示为真或假。下面是关系运算符的分类。“==” :表示等于。“!=” :表示不等于。“>=” :表示大于等于。“<=” :表示小于等于。“>” :表示大于。“<” :表示小于。关系运算符比较基本类型时,表示比较的值是否相等。如果用“==”和“!=”比较对象,就表示比较对象的引用是否相等。例关系运算符的使用示例publicclassrelationship{ publicstaticvoidmain(String

args[]){ floata=10.0f; doubleb=10.0; if(a==b){

System.out.println(“a和b相等”);

} else{

System.out.println(“a和b不相等”);

} }}你的逻辑性强吗?优秀的理学研究成果表明,一个人进行推理速度准的确性能相当可靠地表明他的推理能力

逻辑运算符

逻辑运算符逻辑运算符,其实就是比较逻辑关系,运算结果为true或false。逻辑运算符包括如下几种。与运算符:&&或运算符:||非运算符:!“&&”:与运算符“&&”运算符比较的是符号两边的表达式的真假。publicclassHelloWorld10{ publicstaticvoidmain(String

args[]) {

booleann=(4>3)&&(2<8);

System.out.println(n); }}“||”:或运算符“||”运算符比较的是符号两边的表达式的真假。//修改上节例子,如下形式publicclassHelloWorld11{ publicstaticvoidmain(String

args[]) {

booleann=(4>3)||(2>8); //打印并显示结果

System.out.println(n); }}“!”:非运算符“!”运算符是把符号右边的表达式的结果取反。如为true,取反为false;如为false,取反为true。//修改上节例子,如下形式publicclassHelloWorld12{ publicstaticvoidmain(String

args[]) {

booleann=!(2>8); //打印并显示结果

System.out.println(n); }}逻辑运算符总结“&&”运算符,两边都真才真。符号的两边表达式值都为true时,结果为true;只要有一边不为true,结果即为false。“||”运算符,两边都假才假。符号的两边表达式值只要有一边为true,结果就为true;如果都为false,结果即为false。“!”运算符,是非颠倒。原表达式值为true,结果为false;如果为false,结果即为true。赋值运算符 赋值运算符就是把一个值赋给一个变量。

好比在日常生活中进行a=3操作,以后就可以用a表示3这个数值了一样,即把3赋给变量a。位运算符

按位运算符为运算符主要用于对整数类型二进制运算,将操作数转换成二进制,然后按位进行比较。运算符包括如下几种。“&”:按位与运算符。“|”:按位或运算符。“^”:按位异或运算符。xyX&yX|yX^y00000010111001111110位运算符比较规则“&”:按位与运算符4&3转换为二进制代码4——01003——00110000 按位与运算符,两个数同位都为1的时候该位结果即为1,有一边不是1的话该位结果就为0。“|”:按位或运算符4|3转换为二进制代码4——01003——00110111按位或运算符,两个数同位有一个为1的时候该位结果即为1。按位非~是单目运算符对一个整型数据a,运算结果是一个整型数据c运算法则: 如果a对于该位为1,则c对应该位为0,否则是1.

“~”:按位非运算符“^”:按位异或运算符4^3转换为二进制代码4——01003——00110111按位异或运算符,两个数同位都为1的时候该位结果即为0。有一个为1该位结果即为1。instanceof用于判断一个对象是否属于一个类,是则为true,否则为false补充:位移运算符位移运算符先把操作数转换成二进制数,然后向右向左移动相应的位数。位移运算符包括如下几种。“>>” :带符号右移运算符。“<<” :带符号左移运算符。“>>>” :无符号右移运算符。“>>”:带符号右移运算符7>>2转换为二进制代码7————00000111移动1位—000000111移动2位—0000000111 右移运算符是把操作数转换成二进制数向右移动指定的位数。该右移运算符是有符号的,如果为正数就补0,如果为负数就补1。“<<”:带符号左移运算符7<<2转换为二进制代码7————00000111移动1位—00001110移动2位—00011100 左移运算符是把操作数转换成二进制数向左移动指定的位数。该左移运算符是有符号的,如果为正数就补0,如果为负数就补1。“>>>”:无符号右移运算符7>>>2转换为二进制代码7————00000111移动1位—000000111移动2位—0000000111 无符号右移运算符是把操作数转换成二进制数向右移动指定的位数。无符号右移运算符全在最高位上补0。

三元运算符是对三个表达式进行的集中比较,条件判断语句的值为true时,结果就为第二个表达式值;如果条件判断语句的值为false时,结果就为第三个表达式值。语法如下: 条件判断语句?表达式1:表达式2三元运算符publicclassHelloWorld13{ publicstaticvoidmain(String

args[]) { //4<3表达式的结果为true和false的其中一个。

booleann=(4<3)?true:false; //打印并显示结果

System.out.println(n); }}运算符综述运算符之间有比较严格的优先级,和数学中的先乘除法则后加减法则运算一样。运算符的优先性决定了表达式中运算执行的先后顺序。括号拥有最高的优先级,接下来是一元运算符,最后是二元运算符。 说明:虽然运算符之间有严格的优先级,但是不主张直接使用,还是尽量使用括号,以便更容易读懂程序。3.2语句概述 程序的流程就像生活的道路,不可能永远一帆风顺。if结构if语句的笑话 老婆给当程序员的老公打电话:下班顺路买一斤包子带回来,如果看到卖西瓜的,买一个。当晚,程序员老公手捧一个包子进了家门。。。老婆怒道:你怎么就买了一个包子?!老公答曰:因为看到了卖西瓜的。形式一:ifif(有好看的电视节目){

打开收看;}形式二:if...elseif(有好看的电视节目){

打开收看;}else{

不看电视;}形式三:if...elseif...elseif(有好看的电视节目){

打开收看;}elseif(有朋友约我玩){

出去玩;}else{

什么也不干;} 下面是一个实现根据月份的值,输出该月份包含的日期数,2月份全部输出28,不考虑闰年的示例代码:intmonth=3;intdays=0;//日期数if(month==1){days=31;}elseif(month==2){days=28;}elseif(month==3){days=31;}elseif(month==4){days=30;}elseif(month==5){days=31;}elseif(month==6){days=30;}elseif(month==7){days=31;}elseif(month==8){days=31;}elseif(month==9){days=30;}elseif(month==10){days=31;}elseif(month==11){days=30;}elseif(month==12){days=31;}System.out.println(days);再来看一个示例代码,该代码的功能是实现将百分制的成绩转换为A、B、C、D和E,代码如下:intscore=87;if(score>=90){System.out.println(‘A’);}elseif(score>=80){System.out.println(‘B’);}elseif(score>=70){System.out.println(‘C’);}elseif(score>=60){System.out.println(‘D’);}else{System.out.println(‘E’);}switch语句 当判断的条件很多时,switch分支语句要比if语句要方便很多。switch(今天星期几){ case星期一:

{

上班;

break;

} case星期二:

{

看电影;

break;

} ……. case星期天:

{

超市;

break;

} …… default:

今天星期八!}

switch表达式中只能是整数类型和有顺序的数列。inti=0;int

tempriture=0;if(tempriture<10){i=1;}elseif(tempriture>=10&&tempriture<=24){i=2;}elseif(tempriture>=25&&tempriture<=34){i=3;}elseif{tempriture>35){i=4;}Stringstr="";switch(i){case1:str="有点冷。要多穿衣服";break;case2:str="正合适。出去玩吧。";break;case3:str="有点热。";break;case4:str="太热了!开空调.";break;}开不开空调?分数等级的判断publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);

System.out.println("请输入分数");

intscore=scanner.nextInt();switch(score/10){case9:

System.out.println("优");break;case8:

System.out.println("良");break;case7:

System.out.println("中");break;default:

System.out.println("差");break;}}for循环for循环语句通过判断表达式的成立与否,来决定循环的次数。其基本语法如下:for(变量初始化;表达式;循环表达式){循环体}for(钱=0;钱<=1千万;钱数累积){赚钱}For语句与数组传统方式遍历数组VS改进方式遍历数组Example3_8.javapublicclassExample3_8{ publicstaticvoidmain(String

args[]){

inta[]={1,2,3,4}; charb[]={'a','b','c','d'};

for(inti=0;i<a.length;i++){//传统方式

System.out.println(a[i]); }

for(inti=0;i<b.length;i++){//传统方式

System.out.println(b[i]); }

for(int

i:a){//循环变量i依次取数组a的每一个元素的值(改进方式)

System.out.println(i); }

for(char

ch:b){//循环变量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论