第一章java中的运算符与控制语句第三讲_第1页
第一章java中的运算符与控制语句第三讲_第2页
第一章java中的运算符与控制语句第三讲_第3页
第一章java中的运算符与控制语句第三讲_第4页
第一章java中的运算符与控制语句第三讲_第5页
已阅读5页,还剩43页未读, 继续免费阅读

下载本文档

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

文档简介

1、3.1 运算符与表达式 运算:对数据进行的操作 运算符:表示各种不同运算的符号 操作数:参与运算的数据 表达式:由操作数和运算符按一定的形式组成的有意义的符号序列 操作数 操作符 1 + 1 =3.2 表达式常见类型3.3 赋值运算符赋值运算的一般形式: 变量=表达式;3.4 算术运算符一元算术运算符二元算术运算符Eg: (a/b)*b+(a%b)=a一个算术运算的例子public class ArithmaticOp public static void main(String args) int a = 5, b = 3;int c = +a / b;int c2 = a- / b;int

2、 c3 = a - 2 % b;double d = 2.5;double d2 = d % 3;System.out.println(c= + c);System.out.println(c2= + c2);System.out.println(c3= + c3);System.out.println(d2= + d2);3.5 关系运算(比较运算)Eg: 35; ab;boolean d1=3.52.6;boolean d2=A=a*2-b*9;System.out.println (“ d=+d);System.out.println(d1=+d1);System.out.println

3、(d2=+d2);System.out.println(d3=+d3);System.out.println (“ e=+e);3.6 逻辑运算逻辑运算真值表根据x和y的逻辑值,判断后列答案的正确性提示:提示:&和和|又叫做又叫做短路运算符。短路运算符。 在由他们连接组成的逻辑表达式的求值过在由他们连接组成的逻辑表达式的求值过程中,总是先求出运算符左边的表达式,再程中,总是先求出运算符左边的表达式,再根据具体情况决定是否需要计算运算符右边根据具体情况决定是否需要计算运算符右边得表达式。得表达式。 对对“|”运算,如果左边的表达式的值为运算,如果左边的表达式的值为true,则不必,则不必

4、对运算符右边的表达式在进行对运算符右边的表达式在进行计算,整个表达式的结果就为计算,整个表达式的结果就为true; 对对“&”运算,如果左边的表达式的值为运算,如果左边的表达式的值为false,则不必,则不必在运算符右边的表达式在进在运算符右边的表达式在进行运算,整个表达式的结果为行运算,整个表达式的结果为false。3.6 位运算符X8 x*2的的8次方,次方, Xn x/2的的n次方次方 面试题1.按位运算 (1) “”是按位取反运算符,对数据的每个二进制位取反。 即把1变成0,把0变成1. 例如: 00001111=11110000;按位运算通常的按位运算通常的2 2种用法种用法

5、先对某个数当中某个特定的位置清零先对某个数当中某个特定的位置清零 如对如对1001011010010110从从右边数第二位右边数第二位清零,只需将此数与清零,只需将此数与1111110111111101进行进行按位与运算按位与运算 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 - - 1 0 0 1 0 1 0 0( 1 0 0 1 0 1 0 0(其他位不变,只有从右边数第二位清零其他位不变,只有从右边数第二位清零) )取某个数中某些指定的位取某个数中某些指定的位 如要取数如要取数100101101001011

6、0中从右边数第二位,只需将此数与中从右边数第二位,只需将此数与0000001000000010进行按位与运算。进行按位与运算。 1 0 0 1 0 1 1 01 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 - - 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 ( (从右边数第二位不变,其他位清零从右边数第二位不变,其他位清零) )(3) “|”“|”是按位或运算符,同样要求有两个操作数进行运算。只是按位或运算符,同样要求有两个操作数进行运算。只要两个相应位中有一个位要两个相应位中有一个位1 1,则该位的结果位,则该位的结果位1

7、1,否则结果为,否则结果为0.0.即:即: 0|0=00|0=0,0|1=1 0|1=1 ,1|0=11|0=1,1|1=11|1=1例如:例如: 1 0 1 0 0 0 0 11 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 - - 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1注意注意:按位或运算可以用来将某个数中的某些特定的位置:按位或运算可以用来将某个数中的某些特定的位置1 1,如:,如:要对数要对数1001011010010110从右数第从右数第4 4位置位置1 1,只需要将此数,只需要将此数000010000000100

8、0进行按进行按位或运算:位或运算: 1 0 0 1 0 1 1 01 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 - - 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0( (其他位不变,只有第其他位不变,只有第4 4位置位置1)1)(4)“”“”是按位异运算符,同样要求有两个操作数进行是按位异运算符,同样要求有两个操作数进行运算。如果有个两相应位相同,则该位的结果位运算。如果有个两相应位相同,则该位的结果位0 0,否则结果为否则结果为1 1,即,即: : 00=0, 01=1, 10=1 00=0, 01=1, 10=1例如:例如

9、: 1 0 1 0 0 0 0 11 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 - - 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 “&”是按位运算。是按位运算。 要求有两个操作数进行运算。如果两个相要求有两个操作数进行运算。如果两个相应位均为应位均为1,则该位的结果位,则该位的结果位1,否则结果为,否则结果为0.0&0=0, 0&1=0, 1&0=0, 1&1=1例如:例如: 1 0 1 0 0 0 0 1 &) 0 1 0 0 0 0 0 1 - 0 0 0 0 0 0 0

10、 1 按位异运算符通常的按位异运算符通常的2 2种用法种用法用来将某个数中某些特定的位取反用来将某个数中某些特定的位取反. .如要使数如要使数1001011010010110从右数第从右数第2 2位取反,只需要将此数与位取反,只需要将此数与0000001000000010进行按位异或运算即可进行按位异或运算即可. . 1 0 0 1 0 1 1 01 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 - - 1 0 0 1 0 1 0 0( 1 0 0 1 0 1 0 0(其他位不变其他位不变, ,只从右数第只从右数第2 2位取反位取反) )通过异或运

11、算,实现两个数的交换,不需要使用临时通过异或运算,实现两个数的交换,不需要使用临时变量变量例如:要交换两个整数例如:要交换两个整数a a和和b b值可通过以下语句实现值可通过以下语句实现 a=11000001a=11000001;b=01100000b=01100000; a= a b;/a= a b;/此时此时a=10100001a=10100001 b= b a;/ b= b a;/此时此时b=11000001b=11000001 a= a b;/ a= a b;/此时此时a=01100000a=01100000“&”,“|”和“”用在布布尔型操作数尔型操作数上时的运算规则余下的作

12、为现在的作业,马上就做余下的作为现在的作业,马上就做提示细节- &与&,|与| (39&52) (39&52)当(当(39)结)结果为果为false时,时,&不论是什么,不论是什么,都是都是不计算不计算1.&与与& 即使当即使当 & & 时,前面时,前面是是false时,时,后面的式后面的式子子也执行也执行 (93|58) (93|5 0 ? x : y);a = (x 0 ? x : y);max = (a z ? a : z); max = (a z ? a : z); min = (b z ? b : z); min

13、 = (b z ? b : z); System.out.println(System.out.println(最大的元素值为:最大的元素值为: + max); + max);System.out.println(System.out.println(最小的元素值为:最小的元素值为: + min); + min); 1.1. 流程控制语句 语句程序的基本组成单位. 每个语句以”;”结束语句可以是:short s=125;也可以是用 short s=125; int i= 10; ;括起来的复合语句.(一般一言叫做语句块). 空语句-仅仅由一个”;”组成的语句,叫空语句.作用:通常用做程序的流程

14、控制中的过渡语句.几种流程控制语句循环结构1.3种循环语句种循环语句(1)while语句(也可以成为也可以成为”当型当型”循环循环) 一般格式: while(布尔型表达式布尔型表达式) 循环体循环体; 布尔型表达式布尔型表达式:关系型表达式关系型表达式,逻辑型表达式逻辑型表达式, 布尔型变量布尔型变量,常量常量例题例题 用用while语句求语句求100以内的所有奇数和以内的所有奇数和int i,sum;sum=0;i=1;while(i=100) sum+=i; i+=2;System.out.println(sum);(2)do-while语句语句(“直到直到”型循环型循环)do-while

15、语句的一般格式语句的一般格式 do 循环体循环体; while(布尔型表达式布尔型表达式);解析解析: 先执行先执行do后后循环体循环体, 然后然后去判断去判断while后面的布尔型表达式后面的布尔型表达式例题例题 用用while语句求语句求100以内的所有奇数和以内的所有奇数和int i,sum;sum=0; i=1; do sum+=i; i+=2; while(i=100);System.out.println(sum);注意区别注意区别while和和do-while的语句执行顺序的语句执行顺序for语句一般表示形式语句一般表示形式: for(表达式表达式1;表达式表达式2;表达式表达式

16、3)循环体表达式循环体表达式4例如例如:要使某段代码循环要使某段代码循环1000次次for(int i=0;i=1000;i+)循环语句体循环语句体;(代码段代码段)(3)for语句语句(“当当”型循环型循环)如果遇到如果遇到死循环死循环 CTRL+C来终止程序的运行来终止程序的运行,然后打开源程序进行检查修改错误然后打开源程序进行检查修改错误,重新编译运行重新编译运行int sum=0;for(int i=1;i=100;i+=2)sum+=i;System.out.println(sum);例题例题 用用for语句求语句求100以内的所有奇数和以内的所有奇数和2.循环的嵌套编写输出一个编写

17、输出一个19的乘法表的乘法表int a,b;for(b=0;b=9;b+)/控制的是行数for(a=0;a=b;a+)/控制列数 System.out.print(a+”*”+b+”=”+a*b+t);System.out.println( );例题例题 用用for语句求语句求999以内的和以内的和int sum=0;int i;for(i=1;i1000;i+)sum+=i;System.out.println(“sum=”+sum+”and i=”+i);3.循环结构中的continue语句一般格式: continue 标号;a.不代标号continue语句作用:结束本次循环语句(终止当前

18、循环的本轮循环.并且直接开始下一轮循环)b.代标号的continue语句作用:把程序直接指向标号所指定的循环结构的下一次循环.例题 不带标号的continue习题 / /* * * 找出找出2121世纪的所有闰年,并将结果以每行世纪的所有闰年,并将结果以每行1010个年分的形式输出个年分的形式输出 * * 时间:时间:20082008年年7 7月月2222日日 * * 地点:教室地点:教室 * */ / public class EndInnerLoop public class EndInnerLoop / /* * * * *能被能被4 4整除,但不能被整除,但不能被100100整除的。整

19、除的。 * *能被能被100100整除,又能被整除,又能被400400整除的。整除的。 * */ / public static void main(String args) public static void main(String args) System.System.outout.println(21.println(21世纪的所有闰年有:世纪的所有闰年有:);); int n=0;/int n=0;/计数作用。计数作用。for(int year=2000;year3000;year+=4)for(int year=2000;year3000;year+=4) if(year%100

20、=0&year%400!=0) if(year%100=0&year%400!=0) continue;/ continue;/跳出跳出“本次本次”循环语句循环语句 System.System.outout.print(year+t);.print(year+t); n+; n+; if(n10) if(n10) continue;/ continue;/跳出跳出“本次本次”循环语句循环语句 System.System.outout.println();.println(); n=0; n=0; 例题 带标号的continue习题/ /* * * * * 打印一个三角型的打印一

21、个三角型的0909的乘法表的乘法表 * */ /public class ContinueLabel public class ContinueLabel public static void main(String args) public static void main(String args) outer: outer: for(int i=0;i10;i+)/ for(int i=0;i10;i+)/行行i i for(int j=0;j10;j+) /for(int j=0;ji)/ if(ji)/列大于行。列大于行。 System. System.outout.println()

22、;.println(); continue outer; continue outer; System. System.outout.print( +i+.print( +i+* *+j+=+(i+j+=+(i* *j);j); break 语句 break语句的一般语法格式语句的一般语法格式: break 标号标号;break语句通常情有语句通常情有2种使用情况种使用情况.(1)不带标号的情况不带标号的情况 作用作用:终止终止brake所在的循环所在的循环,转去执行其后的转去执行其后的第一条语句第一条语句.(2)带标号的情况带标号的情况 作用作用:终止由标号指出的语句块的执行终止由标号指出的

23、语句块的执行,并总从并总从紧跟该块的紧跟该块的第一条语句第一条语句处开始往下执行处开始往下执行.例题: 不带标号的break语句: - 编写找出大于1000的第三个素数public class BreakDemo public class BreakDemo public static void main(String args) public static void main(String args) int n=0; int n=0; int b=999; int b=999; outer:/ outer:/外层循环,定义一个标号。外层循环,定义一个标号。 dodo b+=2; b+=2;

24、 int m=(int) Math.ceil(Math.sqrt(b); int m=(int) Math.ceil(Math.sqrt(b); / /取得大于或等于要判断的数的平方根的最小值取得大于或等于要判断的数的平方根的最小值 for(int i=2;i=m;i+)/for(int i=2;i=m;i+)/内层循环,判断内层循环,判断b b是否为素数。是否为素数。 if(b%i=0)if(b%i=0) continue outer; continue outer; n+;n+;if(n=3)if(n=3) break; break; while(true);while(true);Sys

25、tem.out.println(System.out.println(大于大于10001000的第三个素数是:的第三个素数是:+b);+b); 例题: 带标号的break语句 public class BreakDemo1 public class BreakDemo1 public static void main(String args) public static void main(String args) int sum=0;int sum=0;coloop:coloop: while(sum=100) while(sum=100)for(int count=1;count10;co

26、unt+)for(int count=1;count60) if(sum60) break coloop;break coloop; System.out.println(sum = +sum); System.out.println(sum = +sum); 注意:在循环和判断中使用标号要遵守以下规则在循环和判断中使用标号要遵守以下规则: 如果如果break语句中使用了一个标号语句中使用了一个标号,这个标号必这个标号必须声明在一个封闭语句的前面须声明在一个封闭语句的前面; 如果如果continue语句中只用了一个标号语句中只用了一个标号,这个标这个标号必须是一个封闭标号号必须是一个封闭标号.选择语句(1)if-else语句 if-else语句根据判断语句根据判断条件的真假条件的真假来执行来执行两种操作中两种操作中的的一种一种.A.简单形式简单形式 if-else语句的一般语法形式为语句的一般语法形式为: if(布尔表达式布尔表达式) 语句语句1; else 语句语句2 B.if语句的嵌套1.嵌套的常用格式: if(布尔表达式1)语句1 else if(布尔表达式2) 语句2 else if(布尔表达式m) 语句m else语句nswitch语句开关语句 switch语句根据一个进行判断的表达式的结语句根据一个进行判断的表达式的结果来执行多个操作中的

温馨提示

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

评论

0/150

提交评论