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

下载本文档

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

文档简介

java运算符与控制结构3.1运算符与表达式运算:对数据进行的操作运算符:表示各种不同运算的符号操作数:参与运算的数据表达式:由操作数和运算符按一定的形式组成的有意义的符号序列

操作数操作符

1+1=3.2表达式常见类型3.3赋值运算符赋值运算的一般形式:

变量=表达式;3.4算术运算符一元算术运算符二元算术运算符Eg:(a/b)*b+(a%b)==a一个算术运算的例子public

classArithmaticOp{ public

static

voidmain(String[]args){ inta=5,b=3; intc=++a/b; intc2=a--/b; intc3=a-2%b; doubled=2.5; doubled2=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:3>5;‘a’<‘z’;(x+y)!=z;classRelationOp{ publicstaticvoidmain(String[]args) { inta=25,b=3; booleand=a>b; booleand1=3.5<2.6; booleand2='A'<='A'; booleand3=false!=true; booleane=a>=a*2-b*9; System.out.println

(“

d="+d); System.out.println("d1="+d1); System.out.println("d2="+d2); System.out.println("d3="+d3); System.out.println

(“

e="+e); }}3.6逻辑运算逻辑运算真值表根据x和y的逻辑值,判断后列答案的正确性提示:&&和||又叫做短路运算符。在由他们连接组成的逻辑表达式的求值过程中,总是先求出运算符左边的表达式,再根据具体情况决定是否需要计算运算符右边得表达式。对“||”运算,如果左边的表达式的值为true,则不必对运算符右边的表达式在进行计算,整个表达式的结果就为true;对“&&”运算,如果左边的表达式的值为false,则不必在运算符右边的表达式在进行运算,整个表达式的结果为false。3.6位运算符X<<8x*2的8次方,X<<1x*2的1次方X>>nx/2的n次方

面试题1.按位运算(1)“~”是按位取反运算符,对数据的每个二进制位取反。即把1变成0,把0变成1.例如:~00001111=11110000;按位运算通常的2种用法先对某个数当中某个特定的位置清零

如对10010110从右边数第二位清零,只需将此数与11111101进行按位与运算

1001011011111101-------------------------10010100(其他位不变,只有从右边数第二位清零)取某个数中某些指定的位

如要取数10010110中从右边数第二位,只需将此数与00000010进行按位与运算。

1001011000000010-----------------------00000010

(从右边数第二位不变,其他位清零)(3)“|”是按位或运算符,同样要求有两个操作数进行运算。只要两个相应位中有一个位1,则该位的结果位1,否则结果为0.即:

0|0=0,0|1=1,1|0=1,1|1=1例如:

1010000101000001----------------------------11100001注意:按位或运算可以用来将某个数中的某些特定的位置1,如:要对数10010110从右数第4位置1,只需要将此数00001000进行按位或运算:

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

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

10100001&)01000001----------------------------00000001按位异运算符通常的2种用法用来将某个数中某些特定的位取反.如要使数10010110从右数第2位取反,只需要将此数与00000010进行按位异或运算即可.

1001011000000010-------------------------10010100(其他位不变,只从右数第2位取反)通过异或运算,实现两个数的交换,不需要使用临时变量例如:要交换两个整数a和b值可通过以下语句实现

a=11000001;b=01100000;

a=a^b;//此时a=10100001b=b^a;//此时b=11000001a=a^b;//此时a=01100000“&”,“|”和“^”用在布尔型操作数上时的运算规则余下的作为现在的作业,马上就做提示细节--&与&&,|与||(3>9&&5>2)(3>9&5>2)当(3>9)结果为false时,&&不论是什么,都是不计算1.&与&&

即使当&时,前面是false时,后面的式子也执行(9>3||5<8)(9<3|5<8)2.|与||1当是true时,不去执行后面的表达式,结果都是true。不管是false或true1后面的表达式都执行三元运算符=三目运算符“?:”叫条件运算符。表达式1?表达式2:表达式3;

解析:

如果1成立,则执行2.否则就执行3三元运算--习题publicclassTest2{ publicstaticvoidmain(String[]args){ intx=335; inty=212; intz=38; inta,b=10,max,min; System.out.println("原来的整数值为:x="+x+";y="+y+";z="+z); a=(x>0?x:y); max=(a>z?a:z); min=(b<z?b:z); System.out.println("最大的元素值为:"+max); System.out.println("最小的元素值为:"+min); }}流程控制语句语句—程序的基本组成单位.每个语句以”;”结束语句可以是:shorts=125;也可以是用{shorts=125;inti=10;;}括起来的复合语句.(一般一言叫做语句块).空语句--仅仅由一个”;”组成的语句,叫空语句.作用:通常用做程序的流程控制中的过渡语句.几种流程控制语句循环结构1.3种循环语句(1)while语句(也可以成为”当型”循环)

一般格式:while(布尔型表达式){

循环体;}布尔型表达式:关系型表达式,逻辑型表达式,

布尔型变量,常量例题用while语句求100以内的所有奇数和inti,sum;sum=0;i=1;while(i<=100){ sum+=i;i+=2;}System.out.println(sum);(2)do-while语句(“直到”型循环)do-while语句的一般格式

do{

循环体;}while(布尔型表达式);解析:

先执行do后循环体,

然后去判断while后面的布尔型表达式例题用while语句求100以内的所有奇数和inti,sum;sum=0;i=1;do{ sum+=i;i+=2;}while(i<=100);System.out.println(sum);注意区别while和do-while的语句执行顺序for语句一般表示形式:for(表达式1;表达式2;表达式3){

循环体表达式4}例如:要使某段代码循环1000次for(inti=0;i<=1000;i++){

循环语句体;(代码段)}(3)for语句(“当”型循环)如果遇到死循环

CTRL+C来终止程序的运行,然后打开源程序进行检查修改错误,重新编译运行intsum=0;for(inti=1;i<=100;i+=2){ sum+=i;}System.out.println(sum);例题用for语句求100以内的所有奇数和2.循环的嵌套编写输出一个1~9的乘法表inta,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以内的和intsum=0;inti;for(i=1;i<1000;i++){ sum+=i;}System.out.println(“sum=”+sum+”andi=”+i);3.循环结构中的continue语句一般格式:continue标号;a.不代标号continue语句作用:结束本次循环语句(终止当前循环的本轮循环.并且直接开始下一轮循环)b.代标号的continue语句作用:把程序直接指向标号所指定的循环结构的下一次循环.例题不带标号的continue习题/**

找出21世纪的所有闰年,并将结果以每行10个年分的形式输出*时间:2008年7月22日*地点:教室*/publicclassEndInnerLoop{/***能被4整除,但不能被100整除的。*能被100整除,又能被400整除的。*/publicstaticvoidmain(String[]args){System.out.println("21世纪的所有闰年有:");intn=0;//计数作用。for(intyear=2000;year<3000;year+=4){if(year%100==0&&year%400!=0)continue;//跳出“本次”循环语句

System.out.print(year+"\t");n++;if(n<10)continue;//跳出“本次”循环语句

System.out.println();n=0;}}}例题带标号的continue习题/***打印一个三角型的0~9的乘法表

*/publicclassContinueLabel{publicstaticvoidmain(String[]args){outer:for(inti=0;i<10;i++){//行i

for(intj=0;j<10;j++){//列jif(j>i)//列大于行。

{System.out.println("");continueouter;}System.out.print(""+i+"*"+j+"="+(i*j));}}}}break语句break语句的一般语法格式:break标号;break语句通常情有2种使用情况.(1)不带标号的情况

作用:终止brake所在的循环,转去执行其后的第一条语句.(2)带标号的情况

作用:终止由标号指出的语句块的执行,并总从紧跟该块的第一条语句处开始往下执行.例题:不带标号的break语句:

----编写找出大于1000的第三个素数publicclassBreakDemo{publicstaticvoidmain(String[]args){intn=0; intb=999; outer://外层循环,定义一个标号。

do{ b+=2;intm=(int)Math.ceil(Math.sqrt(b));//取得大于或等于要判断的数的平方根的最小值

for(inti=2;i<=m;i++){//内层循环,判断b是否为素数。

if(b%i==0) continueouter; } n++; if(n==3) break; } while(true); System.out.println("大于1000的第三个素数是:"+b); }}例题:带标号的break语句publicclassBreakDemo1{publicstaticvoidmain(String[]args){ intsum=0; coloop: while(sum<=100){ for(intcount=1;count<10;count++){ sum+=count; if(sum>60) breakcoloop; } } System.out.println("sum="+sum); }}注意:在循环和判断中使用标号要遵守以下规则:如果break语句中使用了一个标号,这个标号必须声明在一个封闭语句的前面;如果continue语句中只用了一个标号,这个标号必须是一个封闭标号.选择语句(1)if-else语句

if-else语句根据判断条件的真假来执行两种操作中的一种.A.简单形式

if-else语句的一般语法形式为:if(布尔表达式){

语句1;}[else{语句2}]B.if语句的嵌套1.嵌套的常用格式

温馨提示

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

评论

0/150

提交评论