Java语言程序设计控制语句.pptx
《Java语言程序设计控制语句.pptx》由会员分享,可在线阅读,更多相关《Java语言程序设计控制语句.pptx(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 控制语句学习目标声明布尔类型和书写布尔表达式区分条件和非条件的&和|运算符使用布尔表达式控制条件语句使用if和嵌套if语句实现条件控制使用switch语句实现条件控制使用条件运算符书写表达式使用System.out.printf方法显示格式化的输出以及使用String.format方法格式化字符串了解操作数执行顺序、操作符优先级和结合方向第1页/共54页boolean类型及操作符boolean(布尔)类型Java的基本数据类型(同int、double一样)只有两个取值:true(真)、false(假)整型数据和boolean型不能相互转换c/c+中是可以相互转换的。在c/c+中,数字、
2、指针都可以充当boolean值。但是这种灵活性带来了潜在的灾难,无数程序的bug出在这里第2页/共54页比较运算符(Comparison Operator)又称为关系运算符(Relational Operator),用于两个值的比较比较的结果是一个boolean值。如:boolean b=(1 2);比较运算符比较运算符含义含义小于小于大于大于=大于等于大于等于=等于等于!=不等于不等于注:1、相等的比较运算符是两个 等号(=)2、字符也可以进行比较。实际 上是对字符的Unicode进行 比较。如:(a A)=true第3页/共54页Boolean运算符又称为逻辑运算符(Logical Ope
3、rator)对boolean值运算,得到新的boolean值Boolean运算符运算符名称名称含义含义!非(非(NOT)取反。取反。true false,false true&与(与(AND)两个运算符都为两个运算符都为true时,结果才为时,结果才为true|或(或(OR)当两个运算符至少有一个为当两个运算符至少有一个为true时,结果才为时,结果才为true异或异或(XOR)当两个运算符不一样时,结果才为当两个运算符不一样时,结果才为true第4页/共54页第5页/共54页“非”运算(!)的真值表取反。true false,false true“与”运算(&)的真值表两个运算符都为true
4、时,结果才为truep!pExampletruefalse!(12)is truep1p2p1&p2Examplefalsefalsefalse(43)&(32)is falsefalsetruefalse(42)is falsetruefalsefalse(43)|(33)&(32)is true第6页/共54页“或”运算(|)的真值表当两个运算符至少有一个为true时,结果才为true“异或”运算()的真值表当两个运算符不一样时,结果才为truep1p2p1 p2Examplefalsefalsefalse(43)(32)is falsefalsetruetrue(42)is truetr
5、uefalsetrue(43)|(33)(32)is falsep1p2p1|p2Examplefalsefalsefalse(43)|(32)is falsefalsetruetrue(42)is truetruefalsetrue(43)|(33)|(32)is true第7页/共54页与、或的短路运算法则与(&)运算:一旦有一个操作数为false,则直接得到结果false,后面的表达式不再计算。如:(43)&(1/0=1)不会产生“被零除”错误。因为(43)|(1/0=1)不会产生“被零除”错误。因为(43)为true,最终的结果就是true,程序不会再计算(1/0=1)了第8页/共54
6、页例:判断是不是闰年闰年的定义:该年可以被4整除而不能被100整除,或者可以被400整除,那就是闰年import javax.swing.JOptionPane;public class LeapYearVerifier/*Main method*/public static void main(String args)/用户输入年份 String yearString=JOptionPane.showInputDialog(Enter a year);int year=Integer.parseInt(yearString);/是否为闰年 boolean isLeapYear=(year%4
7、=0)&(year%100!=0)|(year%400=0);/显示 String display=Year +year+isLeapYear=+isLeapYear;JOptionPane.showMessageDialog(null,display);第9页/共54页例:简单的数学学习工具程序随机产生两个一位整数number1和number2,显示给学生如“What is 7+9?”,学生在输入对话框中敲入答案之后,程序显示一个消息对话框,判定答案是true还是false。import javax.swing.JOptionPane;public class AdditionTest/*M
8、ain method*/public static void main(String args)/产生两个随机数(int类型)int n1=(int)(System.currentTimeMillis()%10);int n2=(int)(System.currentTimeMillis()*7%10);/提示用户输入结果 String answerString=JOptionPane.showInputDialog(What is +n1+n2+?);int answer=Integer.parseInt(answerString);/计算结果 String result=n1+n2+=+a
9、nswer+is +(n1+n2=answer);JOptionPane.showMessageDialog(null,result);第10页/共54页位运算符当操作整型数据时,可以使用位运算符(即:按位运算)二进制级别的运算当用于boolean运算时,&和|会产生boolean值,结果同&和|相同,但是不会进行短路运算位运算符位运算符名称名称含义含义非(非(NOT)整数按位取反,整数按位取反,10,01&与(与(AND)两个整数,按位进行两个整数,按位进行“与与”操作操作|或(或(OR)两个整数,按位进行两个整数,按位进行“或或”操作操作异或异或(XOR)两个整数,按位进行两个整数,按位进
10、行“异或异或”操作操作第11页/共54页位运算符举例表达式表达式结果结果33:000000113:11111100=-4 (高位为高位为1,说明是负数。先减,说明是负数。先减1,然后取反,然后取反)11&4 11:00001011&4:00000100-0:000000002|4 2:00000010|4:00000100-6:000001109 5 9:00001001 5:00000101-12:00001100第12页/共54页&运算符的其他用途测试一个数的某位是否为 1x&4=0,说明 x 的第 2 位为 0 x&8!=0,说明 x 的第 3 位为 1截取一个数的低4位0 x7B&0
11、x0F=0 x0B截取一个数的高4位0 x7B&0 xF0=0 x70第13页/共54页&、|不会进行短路运算的例子例1:如果x=1,执行:(x 1)&(x+1)&(x+x+)后,x的值是多少?(x=2)例4:如果x=1,执行:(1=x)|(10 x+)后,x的值是多少?(x=1)结论:虽然&,|也可以进行 boolean 运算,但是不要这么做!第14页/共54页移位运算符位运算符位运算符名称名称举例举例左移位左移位0 x01 4带符号的右移位带符号的右移位0 x3F 2=15-1 2=-1 (-1=0 xFFFFFFFF)-8 2=-2 (-8=0 xFFFFFFF8)(-2=0 xFFFF
12、FFFE)无符号的右移位无符号的右移位-1 2=1073741823(0 x3FFFFFFF)第15页/共54页选择语句if语句switch语句条件运算符第16页/共54页简单的if语句if(boolenExpression)statement(s);booleanexpressionstatement(s)truefalseif(i0)&(i0)&(i0)&(i0)&(i=90.0)grade=A;else if(score=80.0)grade=B;else if(score=70.0)grade=C;else if(score=60.0)grade=D;else grade=F;if(s
13、core=90.0)grade=A;else if(score=80.0)grade=B;else if(score=70.0)grade=C;else if(score=60.0)grade=D;else grade=F;等效于建议采用这种书写风格:避免了深层缩进;程序可读性好第21页/共54页跟踪这个程序:if(score=90.0)grade=A;else if(score=80.0)grade=B;else if(score=70.0)grade=C;else if(score=60.0)grade=D;else grade=F;假设 score=72.0比较结果为 false第22页
14、/共54页if(score=90.0)grade=A;else if(score=80.0)grade=B;else if(score=70.0)grade=C;else if(score=60.0)grade=D;else grade=F;跟踪这个程序:假设 score=72.0比较结果为 false第23页/共54页if(score=90.0)grade=A;else if(score=80.0)grade=B;else if(score=70.0)grade=C;else if(score=60.0)grade=D;else grade=F;跟踪这个程序:假设 score=72.0比较结
15、果为 true第24页/共54页if(score=90.0)grade=A;else if(score=80.0)grade=B;else if(score=70.0)grade=C;else if(score=60.0)grade=D;else grade=F;跟踪这个程序:假设 score=72.0grade=C第25页/共54页if(score=90.0)grade=A;else if(score=80.0)grade=B;else if(score=70.0)grade=C;else if(score=60.0)grade=D;else grade=F;Next statement跟踪
16、这个程序:假设 score=72.0退出 if 语句第26页/共54页else 和 if 的匹配else子句与同一块中离得最近的if子句相匹配int i=1;int j=2;int k=3;if(i j)if(i k)System.out.println(A);else System.out.println(B);int i=1;int j=2;int k=3;if(i j)if(i k)System.out.println(A);else System.out.println(B);等效于第27页/共54页如果想让else同第一个if匹配,则需要使用花括号:推荐写法:int i=1;int
17、j=2;int k=3;if(i j)if(i k)System.out.println(A);else System.out.println(B);int i=1;int j=2;int k=3;if(i j)if(i k)System.out.println(A);else System.out.println(B);第28页/共54页提示1:提示2:if(number%2=0)even=true;else even=false;等效于boolean even=(number%2=0);if(even=true)System.out.println(.);等效于if(even)System
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 控制 语句
限制150内