1、第3章 Java 语言基础,掌握Java中标识符的命名规则; 熟练应用Java的基本数据类型; 掌握Java中的运算符、表达式的运算规则; 养成做注释的良好习惯,并熟练进行Java 注释; 熟练运用选择结构和循环结构进行程序设计。,教学目的要求,3.1 标识符和关键字,标识符 identifiers 标识符用来标志包名、类名、对象名、方法名、变量名、类型名、数组名、文件名有效字符序列称为标识符。通俗地说,标识符就是一个名字。Java语言规定:标识符由任意多个字母、下划线(_)、美元符号($)和阿拉伯数字组成,第一个字符不能是数字。其中的字母包括汉字或其他国家(日本、朝鲜、希腊、罗马等)的文字,
2、下列都是合法的标识符:getMyName4 _yourAge $123moon T3ty,关键字 key words(也有称为保留字)就是Java语言中已经被赋予特定意义的一些专用单词 。,5.0 版本中被加入,1.4 版本中被加入,3.1 标识符和关键字,标识符命名规则 每个名字可以由几个单词连接而成。 对于类名,每个单词的开头字母应该大写。例如:YourName。 对于方法名和变量名,类似类名的命名规则,但是,第一个字母不用大写,例如: 方法:yourMethod() 变量:yourVariable 常量应该用全部大写的标识符。例如: YOURCONST。 包名应该全部用小写。例如:you
3、rpackage。,3.2 基本数据类型,整数类型(int、short、long、byte),整数类型的有关指标,3.2 基本数据类型,浮点数类型(float、double),浮点类型的有关指标,3.2 基本数据类型,布尔类型(boolean),布尔类型(boolean)只有两个取值:true 和 false。,字符类型(char),Java使用Unicode格式表示字符。Unicode格式使用双字节编码,能够表示65536个字符,几乎可以表示世界上所有的语言文字的字符。,3.3 常量和变量,常量 Constant 1.整型常量 final int DONE=100; 2.浮点常量 final
4、 float f = 3.14f; 3.字符常量 final char hao = G; 4.字符串常量 final String s = “成功学院”; 5.布尔常量 final boolean b = true;,3.3 常量和变量,变量 Variables在Java编程语言中,对于变量名有下面的必须满足以下条件: 它必须是一个合法的标识符; 它必须不是一个关键字、布尔型字符(true或者false)或者保留字NULL; 在使用中变量名中的字符是区分大小的。 任何变量在使用之前都需要声明。变量的声明、赋值和初始化的格式是: 变量类型 变量名1=变量值1,变量名2=变量值2; int n =
5、15;,3.4 运算符与表达式,赋值运算符和语句 如,a=5; 算术运算符和算术表达式 如, a = b * c; 关系运算符和关系表达式 如, boolean d = a b ; 逻辑运算符和逻辑表达式 如, ,3.4 运算符与表达式,运算符优先级 precedence 及其结合性 associativity,3.5 程序中的注释,在Java程序中,允许使用以下三种注释方式:单行注释符(/)。它以/开头,后面跟随注释内容,直至该行末。 多行注释符(/* */)。它以/*开头,以*/结束,中间可以有0至任意多行内容作为注释。 文档注释符(/* */)。为便于建立Web页面的HTML文档,使用以
6、/*开头,以*/结束的注释。,3.6 类型转换,自动转换,Java自动转换规则,强制转换,(数据类型)变量名或表达式;,语法格式1 if (条件表达式 e.g. ab)语句或语句序列;,选择语句,3.7 流程控制,语法格式2 if (条件表达式)语句或语句序列1; else语句或语句序列2;,3.7 流程控制,选择语句,语法格式3 if (条件表达式1)语句或语句序列1; else if (条件表达式2)语句或语句序列2; else 语句或语句序列n;,真,真,真,假,假,假,例3.8 应用if语句编程,根据一个学生的某门课程成绩x,转换成相应的等级。划分标准为:优秀(90x100),良好(8
7、0x90),中等(70x80),及格(60x70),不及格(x60)。,/选择结构if语句应用举例,Li3_08.java import java.io.*; public class Li3_08public static void main(String args) throws IOException float x;/学生成绩String str;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in);System.out.print(“请输入学生的成绩(0x100):“);str=buf.r
8、eadLine();x=Float.parseFloat(str);if(x100) /当输入数值不在应有的区间时退出System.out.println(“输入的成绩有误,程序退出。“);System.exit(0); ,选择语句应用举例,例3.8 应用if语句编程,根据一个学生的某门课程成绩x,转换成相应的等级。划分标准为:优秀(90x100),良好(80x90),中等(70x80),及格(60x70),不及格(x60)。,if(x=90)str=“优秀“;else if(x=80)str=“良好“;else if(x=70)str=“中等“;else if(x=60)str=“及格“;e
9、lsestr=“不及格“; System.out.println(“学生的这门课程的等级是:“+str); ,选择语句应用举例,switch 语句流程图,import java.io.*; public class Li3_09public static void main(String args) throws IOException float x;/学生成绩String str;int grad=0;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in);System.out.print(“请输
10、入学生的成绩(0x100):“);str=buf.readLine();x=Float.parseFloat(str);if(x100) /当输入数值不在应有的区间时退出System.out.println(“输入的成绩有误,程序退出。“);System.exit(0);,/ Li3_09.java,选择结构switch语句应用举例,grad=(int)x/10;switch(grad)case 10:case 9: str=“优秀“;break;case 8: str=“良好“;break;case 7: str=“中等“;break;case 6: str=“及格“;break;defau
11、lt: str=“不及格“;System.out.println(“学生的这门课程的等级是:“+str); ,/ Li3_09.java,选择结构switch语句应用举例,3.7 流程控制,循环语句,for(表达式1;表达式2;表达式3) 语句序列,真,假,循环 就是迭代 (重复)一些命令的代码块, 如果循环控制条件不满足的话, 就结束循环.,for 循环是开界的。它的一般形式为: for ( ; ; ) 语句; 初始化总是一个赋值语句, 它用来给循环控制变量赋初值; 条件表达式是一个关系表达式, 它决定什么时候退出循环; 增量定义循环控制变量每循环一次后 按什么方式变化。 这三个部分之间用“
12、;“分开。,例如: for(i=1; i10时, 结束循环。,public class Foreach0public static void main(String args)String b = “西施“,“王昭君“,“貂禅“,“杨贵妃“;for (int i=0; ib.length; i+)System.out.println(“曾经青史留名:“ + bi); ,曾经青史留名:西施 曾经青史留名:王昭君 曾经青史留名:貂禅 曾经青史留名:杨贵妃,for (String a : b)System.out.println(“曾经青史留名:“ + a);,for 语句应用举例,例3.10 应用
13、for语句编程,完成计算 1+2+100 和 10 的阶乘。,/用for语句计算1+2+100 和 1*2*10,Li3_10.java public class Li3_10public static void main(String args)int n;long sum=0, fct=1;for(n=1; n=100; n+)sum+=n;System.out.println(“1+2+100=“+sum);for(n=1;n=10;n+)fct*=n;System.out.println(“1*2*10=“+fct); ,int n; long sum=0; for(n=1; n=10
14、0; n+) sum+=n;,System.out.println( “1+2+100 = “ + sum);,1+2+100 = 5050,电子表格 Spread Sheet,int n; long factor=1; for(n=1; n=100; n+) factor *= n;,System.out.println( “1*2*10= “ + factor);,1*2*10 = 3628800,电子表格 Spread Sheet,for (int i =1 ; i=10; i+) for (int j=1; j=10; j+) System.out.print(“*“); System
15、.out.println(); ,* * * * * * * * * *,* * * * * * * * * *,for (int i =1 ; i=10; i+) for (int j=0; ji; j+) System.out.print(“*“); System.out.println(); ,System.out.print(“*”); /打印一个星号,System.out.println(); /换行,循环嵌套应用举例,* * * * * * * * * *,for (int i =1 ; i=?; i+) for (int j=0; ji; j+) System.out.print
16、(“*“); System.out.println(); ,System.out.print(“*”); /打印一个星号,System.out.println(); /换行,* * * * * * * * * *,for (int i =1 ; i=?; i+) for (int j=0; ji; j+) System.out.print(“*“); System.out.println(); ,System.out.print(“*”); /打印一个星号,System.out.println(); /换行,* * * * * * * * * *,for (int i =1 ; I = ? ;
17、 i+) for (int j=0; ji; j+) System.out.print(“*“); System.out.println(); ,System.out.print(“*”); /打印一个星号,System.out.println(); /换行,/打印i 个星号,/ 换行,* * * * * * * * * *,for (int i =10 ; i = ? ; i-) for (int j=0; ji; j+) System.out.print(“*“); System.out.println(); ,for (int i =10; i0; i-) / 反转行的次数,/ 以便得到
18、一个倒立的三角型,/打印i 个星号,/ 换行,* *,for (int i =0 ; i=10; i+) for (int j=0; j10-i; j+) System.out.print(“ “); for (int j=10-i; j=10;j+) System.out.print(“*“); System.out.println();,/打印正立三角型,角尖靠右,3.7 流程控制,while 语法格式 while(条件表达式) 语句序列,循环语句,真,假,long sum=0; while(n=100) sum+=n; n+; ,do-while语法格式 do语句序列 while(条件表
19、达式);,真,假,long sum=0;dosum += n; n+;while( n=100);,while语句应用举例,例3.11 应用while语句编程,完成计算1+2+100和10的阶乘。,/用while语句计算1+2+100和1*2*10,Li3_11.java public class Li3_11public static void main(String args)int n=1;long sum=0,fct=1;while(n=100)sum+=n; n+; System.out.println(“1+2+100=“+sum);n=1; /注意此处给n重新赋值为1的重要性wh
20、ile(n=10)fct*=n; n+; System.out.println(“1*2*10= “ + fct ); ,do-while语句应用举例,例3.12 应用do-while语句编程,完成计算1+2+100和10的阶乘。,public class Li3_12public static void main(String args)int n=1;long sum=0,fct=1;dosum+=n; n+;while( n=100);System.out.println(“1+2+100=“+sum);n=1;/注意此处给n重新赋值为1的重要性dofct*=n; n+;while(n=
21、10);System.out.println(“1*2*10=“+ fct ); ,1+2+100 = 5050,1*2*10 = 3628800,循环嵌套应用举例,例3.13 编程完成九九乘法表上三角部分的打印输出。,/输出九九乘法表上三角部分,Li 3_13.java public class Li3_13public static void main(String args)int j,k,m;for(j=1;j30;j+)System.out.print(“ “);System.out.println(“九九乘法表“);for(j=1;j=9;j+)for(k=j;k=9;k+)m=j
22、*k;System.out.print(j+“+k+“=“+m+“t“);System.out.println(“); ,/Li3_13A.java,输出九九乘法表 public class Li3_13Apublic static void main(String args) int i,j;System.out.printf(“%32sn“,“*九九乘法表*“);System.out.print(“ “);for (i=1;i10;i+)System.out.printf(“%5d“,i);System.out.println();for (i=1;i10;i+)System.out.printf(“%5d“, i);for (j=1;j10;j+)System.out.printf(“%5d“, i*j);System.out.println(); ,