Java程序设计第02讲Java基本语法王伟河北师范大学软件学院Java课程组本讲教学目标•掌握Java的数据类型、变量常量•掌握运算符及优先级•掌握各种控制语句河北师范大学软件学院Java课程组本讲内容•Java的变量、常量•Java的运算符•Java的语句河北师范大学软件学院Java课程组•电脑使用内存来记忆计算时所使用的数据•内存如何存储数据?•内存像旅馆–数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间1、开房间(单人间、双人间、总统套间)2、入住√回顾内存如何存放数据河北师范大学软件学院Java课程组1000*(1+5%)内存10001050变量:一个数据存储空间的表示对于专业程序员,数据存入内存不算完:怎么找到存入的数据?存进去还能改吗?98.76不同数据存入具有不同内存地址的空间,相互独立变量在银行存1000元钱,银行一年的利息5%,那一年之后钱变成了多少?河北师范大学软件学院Java课程组•内存地址不好记,怎么办?–通过内存中小房间的别名找到数据存储的位置•变量是存储数据的一个基本单元房间房间名字房间类型入住的客人变量变量名变量类型变量值为什么需要变量对应河北师范大学软件学院Java课程组1、字母2、下划线‘_’3、‘$’符号首字母任意多的:1、数字2、字母3、下划线‘_’4、‘$’符号其余部分变量名Java语言中,变量命名要符合一定规则money,score,name,sex变量命名规范:简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写。例如:myScore变量命名规则2-1河北师范大学软件学院Java课程组变量命名规则2-2•检查下面这些是否是合法的变量名principalcost_pricemarks_3$lastnamecity123ratediscount%zipcodeCityint××××河北师范大学软件学院Java课程组变量应用1、在内存中存储本金1000元2、显示内存中存储的数据的值publicclassHelloWorld{publicstaticvoidmain(String[]args){intmoney=1000;//存数据}}数据类型变量名内存空间存的数值System.out.println(money);//使用数据河北师范大学软件学院Java课程组变量的声明和赋值•使用变量的步骤:–第一步:声明一个变量–第二步:赋值–第三步:使用变量数据类型变量名=数值;根据类型开辟空间将数据存入空间取出数据使用数据类型变量名;变量名=数值;intmoney=1000;intmoney;money=1000;河北师范大学软件学院Java课程组12常量•常量是一种标识符,它的值在运行期间恒定不变•常量标识符在程序中只能被引用,而不能被重新赋值常量圆周率PI圆周率PI代码表示方式publicstaticfinaldoublePI=3.14159265358979323846;用法将ang角度转换成径度publicstaticdoubletoRadians(doubleang){returnang/180.0*PI;}河北师范大学软件学院Java课程组13常量的优点•如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦?publicstaticdoubletoRadians(doubleang){returnang/180.0*3.14159265358979323846;}publicstaticdoubletoDegrees(doubleang){returnang*180.0/3.14159265358979323846;}publicstaticfinaldoublePI=3.14159265358979323846;//圆周率publicstaticdoubletoRadians(doubleang){returnang/180.0*PI;}publicstaticdoubletoDegrees(doubleang){returnang*180.0/PI;}程序的可读性变差:用户很难理解数字或字符串的意思程序的可维护性变差:如果数值改变,则需要在很多地方改动,既麻烦又易出错使用常量可以增强程序的可读性、可维护性河北师范大学软件学院Java课程组14Java中常量的定义规则•加入final关键字代表常量,加入static关键字代表类变量•尽量使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串publicclassStudent{publicstaticfinalintFEMALE=1;//代表女性publicstaticfinalintMALE=2;//代表男性privateintsex;//性别publicvoidsetSex(intsex){if(sex==FEMALE)System.out.println(这是一名女学生);elseif(sex==MALE)System.out.println(这是一名男学生);this.sex=sex;}}河北师范大学软件学院Java课程组数据类型河北师范大学软件学院Java课程组Java基本数据类型河北师范大学软件学院Java课程组整型字面值•在Java中有3种方法表示整数–十进制(0~9):不需要任何解释•inti=99;–八进制(0~7):在数的前面放置一个0(零)•intsix=06;//值为6•intnine=011;//值为9–十六进制(0~9,a~f):在数前放置0x或者0X•intx=0x0001;•inty=0Xb;•intz=0x7FFff;•在数字后面加上L或l,类型定义为long–longjo=1109L;–longso=0xFFFL;河北师范大学软件学院Java课程组浮点字面值•浮点字面值默认为double–doubled=333242.00;–doublee=987.44d;–doublef=423.22D;•float类型需要在字面值后面加F或f–floatjo=1109.32F;–floatso=4423.00f;河北师范大学软件学院Java课程组布尔字面值•布尔值只能定义为true或false–一定注意使用布尔值的表达式intx=1;if(x){}//编译错误inty=1;if(x+y){}booleanb=false;if(b=true){}if(b==true){}河北师范大学软件学院Java课程组字符字面值•char字面值表记为单引号内的单个字符,字符实际上只是一个16位无符号整数,不能直接输入的字符可以用转义字符\–chara=‘a’;–charb=98;System.out.println(b);–charn=‘\u004E’;System.out.println(n);–chard=‘\”’;•尽管字符串不是基本类型,但它能表现为字面值–Strings=“Hello”;–Stringhi=“Hello”+”World”;–字符串可以和其他基本数据类型连接,返回字符串类型河北师范大学软件学院Java课程组基本数据类型转换•Boolean类型不可转换为其它的数据类型•整型、字符型、浮点型在混合运算中相互转换,转换时遵循以下原则–容量小的类型字段转化为容量大的类型,数据类型按容量大小排序(小-大)•byte→short→(char)→int→long→float→double–容量大的数据类型转换为容量小的数据类型,要加上强制转换符,但可能造成精度降低或溢出,使用时要注意–多种类型的数据混合运算时,系统首先自动的将所有数据转化为容量最大的那种数据类型,然后再进行计算河北师范大学软件学院Java课程组涉及byte、short和char类型的运算•Java中涉及byte、short和char类型的运算操作首先会把这些值转换为int类型,然后对int类型值进行运算,最后得到int类型的结果。因此,如果把两个byte类型值相加,最后会得到一个int类型的结果classTest{publicstaticvoidmain(String[]args){byteb1=10,b2=20;byteb3=b1+1;//此处即报错,应改为byteb3=(byte)(b1+1);b3=b1+b2;//此处即报错,应改为byteb3=(byte)(b1+b2);}}河北师范大学软件学院Java课程组运算符•算术运算符•关系运算符•逻辑运算符•赋值运算符河北师范大学软件学院Java课程组某班的A学员Java成绩是80分,B学员与A学员成绩相同,输出B学员成绩intaScore=80;intbScore;aScore=bScore;System.out.println(bScore);bScore=aScore;//将右边的值给左边的变量赋值运算符aScorebScore8080副本赋值运算符2-1代码错误河北师范大学软件学院Java课程组变量名表达式;赋值运算符2-2Z=(X*2)+(5–Y)表达式表达式表达式•赋值运算符表达式举例河北师范大学软件学院Java课程组算术运算符•基本的算术运算操作数操作数运算符河北师范大学软件学院Java课程组关系运算符•常用的关系运算符有哪些:–,–==,!=–=,=大象的寿命乌龟的寿命真篮球的大小==地球的大小假由此看出关系运算符的作用:用来做比较运算比较后结果:boolean类型河北师范大学软件学院Java课程组逻辑运算符运算符表达式说明&&条件1&&条件2仅仅两个条件同时为真,结果为真||条件1||条件2只要两个条件有一个为真,结果为真!!条件条件为真时,结果为假条件为假时,结果为真河北师范大学软件学院Java课程组程序流程•顺序执行–System.out.print(“hello);–System.out.print(“world);•无条件分支–return,break,continue,throw,...•条件分支–if...else,switch...case,...•循环–while,do...while,for...each河北师范大学软件学院Java课程组if条件结构•if条件结构是根据条件判断之后再做处理if(条件){//语句}if(明天下雨){我就带伞去上课;}基本的if条件结构表达式语句假真河北师范大学软件学院Java课程组如何使用if条件结构if-else条件结构if(条件){//语句1}else{//语句2}if(明天下雨){我不上课;}else{我去上课;}结合问题4真表达式语句1假语句2河北师范大学软件学院Java课程组多重if结构就是在else部分中还包含其他if块多重if结构if(条件){//语句}elseif(条件){//语句}else{//语句}可以有多个可以省略多重if结构假真真假表达式1语句1表达式2语句2语句3河北师范大学软件学院Java课程组如何使用多重if结构使用多重if结构解决问题intscore=70;//考试成绩if(score=90){System.out.println(优秀);}elseif(score=80){System.out.println(良好);}elseif(score=60){System.out.println(中等);}else{System.out.println(差);}大于等于90分大于等于60分,小于80分小于60分大于等于80分,小于90分河北师范大学软件学院Java课程组switch(表达式){case常量1:语句;break;case常量2:语句;break;default:语句;}switch结构switch结构计算表达式的值如果等于常量1如果等于常量2如果没有找到匹配的值河北师范大学软件学院Java课程组常见错误Stringday=星期一;switch(day){case星期一:System.out.println(星期一:青菜);break;case星期二:System.out.println(星期二:鱼);