edit_note帖子
455
stars积分
28,782
event加入
2012-03-09
怀旧国机
【繁花java编程技术】JAVA 基础语法(专业讲解)
schedule发表于 2012-12-24 05:52:00
visibility查看 307
chat_bubble回复 2
#1 楼主
Java程序设计 Java程序设计
第02讲 Java基本语法 02讲 Java基本
语法
王伟
本讲教学目标 掌握 掌握Java的数据
类型、变量常量 的数据类型、 的数
据类型 掌握运算符及优先级 掌握各
种控制语句
河北师范大学软件学院 Java课程组
知识回顾/本讲先行知识 知识回顾 本
讲先行知识 什么是 什么是JDK、JRE
、 什么是 什么是JAVASE、
JAVAEE、JAVAME? 、 、 如何输出
如何输出helloworld
河北师范大学软件学院 Java课程组
本讲内容 Java的变量、常量 的变
量、 的变量 Java的运算符 的运算符
Java的语句 的语句
河北师范大学软件学院 Java课程组
回顾内存如何存放数据 电脑使用内存
来记忆计算时所使用的数据 内存如何
存储数据? 内存如何存储数据?
1 1、开房间(单人间、双人间、总
统套间) √ 2、入住
内存像旅馆
– 数据各式各样,要先根据数据的需
求(即类型 数据各式各样,要先根据
数据的需求( )为它申请一块合适的
空间
河北师范大学软件学院 Java课程组
变量
在银行存1000元钱,银行一年的利息
5%,那一 年之后钱变成了多少?
内存 变量:一个数据 存储空间的表
示 1050 98.7 6 不同数据存入具有不
同 内存地址的空间,相互独立
1000*(1+5%) 1000
对于专业程序员,数据存入内存不算
完: 怎么找到存入的数据? 存进去
还能改吗?
河北师范大学软件学院 Java课程组
为什么需要变量 内存地址不好记,怎
么办? 内存地址不好记,怎么办?
– 通过内存中小房间的别名找到数据
存储的位置
房间 对应 房间名字 房间类型 入住的
客人 变量名 变量类型 变量值 变量
变量是存储数据的一个基本单元
河北师范大学软件学院 Java课程组
变量命名规则2-1 变量命名规则
Java语言中,变量命名要符合一定规
则
money,score,name,sex
首字母 变 量 名 1、字母 2、下划
线‘_’ 3、‘$$’ 符号 其余部分 任意多
的: 1、数字 2、字母 3、下划线‘_’
4、‘$$’ 符号
变量命名规范: 简短且能清楚地表明
变量的作用,通常第一个单词的首字
母小写,其后单词的 首字母大写。例
如:myScore
河北师范大学软件学院 Java课程组
变量命名规则2-2 变量命名规则
检查下面这些是否是合法的变量名
principal $$lastname zip code
×
123rate
×
discount%
×
City
cost_price
marks_3
city
×
int
河北师范大学软件学院 Java课程组
变量应用 1、在内存中存储本金1000
元 、在内存中存储本金 元 2、显示
内存中存储的数据的值 、
public class HelloWorld { public
static void main(String[ ] args)
{ int money = 1000; //存数据
System.out.println(money); //使用
数据 } 数据类型 } 变量名 内存空间存
的数值
河北师范大学软件学院 Java课程组
变量的声明和赋值
数据类型 变量名 = 数值; 数据类型
变量名; 变量名 = 数值; int
money = 1000; int money; money
= 1000 ;
使用变量的步骤: 使用变量的步骤:
– 第一步:声明一个变量 第一步:
根据类型开辟空间
– 第二步:赋值 第二步:
将数据存入空间
– 第三步:使用变量 第三步:
取出数据使用
河北师范大学软件学院 Java课程组
常量 常量是一种标识符,它的值在运
行期间恒 常量是一种标识符, 定不
变 常量标识符在程序中只能被引用,
而不能 常量标识符在程序中只能被引
用, 被重新赋值
常量 圆周率PI 圆周率 圆周率PI
public static final double PI =
3.14159265358979323846; 圆周率
代码表示 方式 将ang角度转换成径度
角度转换成径度 public static
double toRadians(double ang)
{ return ang / 180.0 * PI; }
12 河北师范大学软件学院 Java课程
组
用法
常量的优点
如果不使用常量,直接在程序中填写
数字或字符串,将会 如果不使用常
量,直接在程序中填写数字或字符
串, 有什么麻烦? 有什么麻烦? 程
序的可读性变差: 程序的可读性变
差:用
public static double toRadians
(double ang) { return ang / 180.0 *
3.14159265358979323846; }
public static double toDegrees
(double ang) { return ang * 180.0 /
3.14159265358979323846; } 户很
难理解数字或字符 串的意思 程序的
可维护性变差: 程序的可维护性变
差:如 果数值改变, 果数值改变,
则需要在很 多地方改动, 多地方改
动,既麻烦又易 出错
public static final double PI =
3.14159265358979323846; // 圆周
率 public static double toRadians
(double ang) { return ang / 180.0 *
PI; } public static double
toDegrees(double ang) { return
ang * 180.0 / PI; } 使用常量可以增强
程序的可读性、 使用常量可以增强程
序的可读性、可维护性
13
河北师范大学软件学院 Java课程组
Java中常量的定义规则 中常量的定
义规则
加入 加入final 关键字代表常量, 加
入 关键字代表常量, 加入static 关
键字代表类 变量 尽量使用含义直观
的常量来表示那些将在程序中多次出
现的 数字或字符串
public class Student { public static
final int FEMALE = 1; //代表女性
public static final int MALE = 2; //
代表男性 private int sex; //性别
public void setSex(int sex) { if
(sex==FEMALE)
System.out.println(“这是一名女学
生“); else if(sex == MALE)
System.out.println(“这是一名男学
生“); this.sex = sex; }}
14
河北师范大学软件学院 Java课程组
数据类型
河北师范大学软件学院 Java课程组
Java基本数据类型 基本数据类型
河北师范大学软件学院 Java课程组
整型字面值
在Java中有 种方法表示整数 中有3种
方法表示整数 中有
– 十进制 十进制(0~9):不需要任何
解释 :
int i = 99;
– 八进制 八进制(0~7):在数的前面
放置一个0(零) :在数的前面放置一
个 零
int six = 06; //值为 值为6 值为 int
nine = 011; //值为 值为9 值为
– 十六进制 十六进制(0~9,a~f):在数
前放置0x或者 :在数前放置 或者 或
者0X
int x = 0x0001; int y = 0Xb; int z =
0x7FFff;
在数字后面加上 或l,类型定义为 在
数字后面加上L或 ,类型定义为long
– long jo = 1109L; – long so =
0xFFFL;
河北师范大学软件学院 Java课程组
浮点字面值 浮点字面值默认为 浮点
字面值默认为double
– double d = 333242.00; – double
e = 987.44d; – double f = 423.22D;
float类型需要在字面值后面加 或f 类
型需要在字面值后面加F或 类型需要
在字面值后面加
– float jo = 1109.32F; – float so =
4423.00f;
河北师范大学软件学院 Java课程组
布尔字面值 布尔值只能定义为 布尔
值只能定义为true或false 或
– 一定注意使用布尔值的表达式 int x
= 1; if(x) { } //编译错误 编译错误 int
y = 1; if(x+y){ } boolean b = false;
if(b=true){ } if(b==true){ }
河北师范大学软件学院 Java课程组
字符字面值
char字面值表记为单引号内的单个字
符,字符实 字面值表记为单引号内的
单个字符, 字面值表记为单引号内的
单个字符 际上只是一个16位无符号
整数 位无符号整数, 际上只是一个
位无符号整数,不能直接输入的 字符
可以用转义字符 \
– char a = ‘a’; – char b = 98;
System.out.println(b); – char n =
‘\u004E’; System.out.println(n); –
char d = ‘\”’;
尽管字符串不是基本类型,但它能表
现为字面值 尽管字符串不是基本类
型,
– String s = “Hello”; – String hi =
“Hello”+”World”; – 字符串可以和
其他基本数据类型连接,返回字符串
类 字符串可以和其他基本数据类型连
接, 型
河北师范大学软件学院 Java课程组
基本数据类型转换
Boolean类型不可转换为其它的数据
类型 类型不可转换为其它的数据类型
整型、字符型、浮点型在混合运算中
相互转换,转 整型、字符型、浮点型
在混合运算中相互转换, 换时遵循以
下原则
– 容量小的类型字段转化为容量大的
类型,数据类型按容 容量小的类型字
段转化为容量大的类型, 量大小排序
(小 量大小排序 小 -> 大) byte→
short→ (char)→
int→long→float→ double – 容量大
的数据类型转换为容量小的数据类
型,要加上强 容量大的数据类型转换
为容量小的数据类型, 制转换符,但
可能造成精度降低或溢出,使用时要
注意 制转换符, 可能造成精度降低
或溢出, – 多种类型的数据混合运算
时,系统首先自动的将所有数 多种类
型的数据混合运算时,系统首先自动
的将所有数 据转化为容量最大的那种
数据类型, 据转化为容量最大的那种
数据类型,然后再进行计算
河北师范大学软件学院 Java课程组
涉及byte、short和char类型的运算
、 涉及 和 类型的运算 Java中涉及
中涉及byte、short和char类型的 中
涉及 、 和 类型的 运算操作首先会把
这些值转换为int类型, 类型, 运算
操作首先会把这些值转换为 类型 然
后对int类型值进行运算,最后得到
类型值进行运算, 然后对 类型值进
行运算 最后得到int 类型的结果。因
此,如果把两个byte类型 类型的结
果。因此,如果把两个 类型 值相
加,最后会得到一个int类型的结果
值相加,最后会得到一个 类型的结果
class Test { public static void
main(String []args){ byte
b1=10,b2=20; byte b3=b1+1; //此处
即报错,应改为byte b3=(byte)
(b1+1); b3=b1+b2; //此处即报错,
应改为byte b3=(byte)(b1+b2); } }
河北师范大学软件学院 Java课程组
运算符 算术运算符 关系运算符 逻辑
运算符 赋值运算符
河北师范大学软件学院 Java课程组
赋值运算符2-1 赋值运算符 某班的A
学员 成绩是80分 某班的 学员Java成
绩是 分,B学员与 学员 成绩是 学员
与 A学员成绩相同,输出 学员成绩
学员成绩相同, 学员成绩相同 输出B
学员成绩
int aScore = 80; 赋值运算符 int
bScore; aScore = bScore;
System.out.println(bScore); 代码
错误 80 副 本 80 bScore aScore
bScore = aScore ;
//将右边的值给左边的变量
河北师范大学软件学院 Java课程组
赋值运算符2-2 赋值运算符 赋值运算
符
变量名 表达式;
表达式举例
Z = (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条件结构
真 语句1 语句 语句2 语句 表达 式 假
if ( 条件 ) { //语句1 }else { //语句2 }
结合问题4
if ( 明天下雨) { 我不上课; 我不上
课; }else { 我去上课; 我去上
课; }
河北师范大学软件学院 Java课程组
多重if结构 多重 结构
多重if结构就是在 部分中还包含其他
if块 多重 结构就是在else部分中还包
含其他 块 结构就是在 部分中还包含
其他 多重if结构 多重 结构
if ( 条件 ) { //语句 语句 } else if ( 条
件 ) { //语句 语句 } else { //语句 语
句 }
河北师范大学软件学院 Java课程组
表达式 1 真 语句1 语句
假
表达式 2 真 可以有多个 语句2 语句
假
语句3 语句
可以省略
如何使用多重if结构 如何使用多重 结
构 使用多重if结构解决问题 使用多重
结构解决问题
int score = 70; //考试成绩 考试成绩
大于等于90分 大于等于 分 if ( score
>= 90 ) { System.out.println(“优
秀“); 大于等于80分 小于90分 大于等
于 分,小于。。 分 } else if (score >=
80 ) { System.out.println(“良好“); }
else if (score >= 60 ) { 大于等于60
分,小于80分 大于等于 分 小于 分 System.out.println
(“中等“); } else { 小于60分 小于 分
System.out.println(“差“); }
河北师范大学软件学院 Java课程组
switch结构 结构
switch结构 结构
switch (表达式 表达式) 表达式
{ case 常量 1: 语句; 语句 break;
case 常量 2: 语句; 语句 break;
default: 语句; 语句 } 计算表达式的
值
如果等于常量1 如果等于常量
如果等于常量2 如果等于常量
如果没有找到匹配的值
河北师范大学软件学院 Java课程组
常见错误
String day = “星期一 星期一“; 星期
一 switch (day){ case “星期一 星期
一“: 星期一 代码错误
System.out.println(“星期一:青菜
“); 星期一: 星期一 break; case “星
期二 星期二“: 星期二
System.out.println(“星期二:鱼 “);
星期二: 星期二 break; ……
default: } ……
河北师范大学软件学院 Java课程组
switch后面小括号中表达式的 后面
小括号中表达式的 值必须是整型或字
符型
比较switch和多重 结构 和多重if结构
比较 和多重 相同点
都可以实现多分支结构
不同点
– switch
只能处理等值的条件判断, 只能处理
等值的条件判断,且条件是整型变量
或字符 变量的等值判断 处理在else
部分还包含其它 结构,特别适合某个
变 部分还包含其它if结构 处理在 部
分还包含其它 结构, 量处于某个区
间时的情况
– 多重 多重if
河北师范大学软件学院 Java课程组
while循环 循环
符合条件, 符合条件,循环继续执
否则, 行;否则,循环退出 while
( 循环条件 ) { 循环操作 } 循环中被重
复 执行的操作 System.out.println
(“hello“); i ++; } int i = 1; while ( i
<= 30 ) {
循环条件 真
假
特点:先判断,再执行 特点:先判
断,
编码规范:缩进、 编码规范:缩进、
换行
循环操作
河北师范大学软件学院 Java课程组
怎样使用while循环 循环 怎样使用
录入班级人数和学员成绩, 录入班级
人数和学员成绩,计算班级学员的 平
均成绩
while(i<=stuNum){ 循环条件: 请
输入学号“ 循环条件:目前录入的成
绩数目 System.out.print(“请输入学
号 + i + “的成绩:“); 的成绩: 请输
入学号 的成绩 小于总人数 score =
input.nextInt(); sum = sum +
score; 循环操作:录入学生成绩, 循
环操作:录入学生成绩,并累 i++; }
加求和 avg = sum / stuNum ;
河北师范大学软件学院 Java课程组
do-while循环 循环
do {
先执行一遍循环操作
循环操作
循环操作
真
} while ( 循环条件 ); 符合条件,循
环继续执行; 符合条件,循环继续执
行; 否则, 否则,循环退出
循环条件 假
特点:先执行, 特点:先执行,再判
断
河北师范大学软件学院 Java课程组
比较while和do-while 和 比较
while循环和 循环和do-while循环的
区别 循环和 循环的区别
– 语法不同
while ( 循环条件 ) { 循环操作 } 先判
断, 先判断,再执行 do { 循环操
作 } while( 循环条件 ); 先执行, 先
执行,再判断
– 初始情况不满足循环条件时
while循环一次都不会执行 循环一次
都不会执行 do-while循环不管任何
情况都至少执行一次 循环不管任何情
况都至少执行一次 循环不管任何情况
都
河北师范大学软件学院 Java课程组
什么是for循环 什么是 循环
for循环的语法和执行顺序 循环的语
法和执行顺序
1 for( } 3 参数初始化 表达式1 表达
式 ; 循环操作 ; 2 条件为true 条件为
条件判断 ; 表达式2 表达式 循环体被
执行 4
){ 更新循环变量 表达式3 表达式
for ( int i = 0 ;
i < 100 ;
i++ ) {
System.out.println(“hello“); } 代码
规范:格式对齐、 代码规范:格式对
齐、代码的缩进
河北师范大学软件学院 Java课程组
为什么需要break语句 语句 为什么需
要
描述4000米长跑比赛 语句 回顾
break用于 米长跑比赛 用于switch
语句 描述 回顾 用于 第8圈, 圈 快累
死了… 快累死了 我要退出… 我要退
出
int i = 2; for (int i switch(i){= 0;
i<10; i++) { 跑400米; 米 case 1: 星
期一“); 星期一 if
(System.out.println(“星期一 不能
坚持) (不能坚持){ break;
break; //退出比赛 退出比赛 case
2: } } System.out.println(“星期二
星期二“); 星期二 break; } 遇到
break,立即跳出 遇到 ,立即跳出
switch语句 语句 //其他语句 其他语
句
河北师范大学软件学院 Java课程组
break语句 语句 break:改变程序控
制流 :
– 用于 用于do-while、while、for中
时,可跳出循环 中时, 、 、 中时 而
执行循环后面的语句
while(…) { …… …… …… break; ……
…… …… } break通常在循环中与 通
常在循环中与 条件语句一起使用 跳
出 整 个 循 环
河北师范大学软件学院 Java课程组
为什么需要continue语句 语句 为什
么需要
循环录入Java课的学生成绩,统计分
数大于等于 80分 课的学生成绩, 循
环录入 课的学生成绩 分 的学生比例
1、通过循环,获得分数大 、通过循
环, 于等于80分的学生人数 分的学
生人数num 于等于 分的学生人数
2、判断:如果成绩<80,不 、判
断:如果成绩 , 执行num++,直接
进入下一 执行 , 次循环
河北师范大学软件学院 Java课程组
continue语句 语句
continue :只能用在循环里
continue 作用:跳过循环体中剩余
的语句而执行 作用: 下一次循环
继 续 下 一 次 循 环 while(…) { ……
…… …… continue; …… …… } for(int
i = 0; i<10;i++){ 400 { if
continue; // } ; } 语句
循环总结
指出各种循环结构的执行顺序 int
i=0; 1 int i=0; 1 int sum=0; 1 2
4
int sum=0; 2 while( i<10 ){ 3 4 }
sum=sum+i; i++;
int sum=0; do{ 2 sum=sum+i; 3 i+
+; }while(i<10); 4
for(int i=0;i<10;i++){ sum=sum
+i; } 3
while和for相同,先进行判断,后执
行循环体内容 和 相同 先进行判断,
相同, do-while是先执行,后判
断,至少执行一次 是先执行, 是先
执行 后判断,
河北师范大学软件学院 Java课程组
控制流语句小结
顺序结构:语句顺序执行 顺序结构:
分支结构:语句在满足条件下执行 分
支结构:
– if, if-else, if-else if-else, switch
循环结构:语句在满足条件下循环执
行多次 循环结构:
– while, do-while, for
跳转语句
– break, continue
河北师范大学软件学院 Java课程组
程序调试 调试 —— 程序员 程序员
70%时间在做的事情 时间在做的事情
调试史话
找出并解决bug的过程 的过程 找出并
解决
bug 缺陷 设置断点 单步执行
debug 调试 观察变量
调试的主要方法
河北师范大学软件学院 Java课程组
小结
变量、常量、数据类型 变量、常量、
运算符有哪些 语句结构有哪几种
河北师范大学软件学院 Java课程组
实验
河北师范大学软件学院 Java课程组
本讲结束 谢谢大家
河北师范大学软件学院 Java课程组
第02讲 Java基本语法 02讲 Java基本
语法
王伟
本讲教学目标 掌握 掌握Java的数据
类型、变量常量 的数据类型、 的数
据类型 掌握运算符及优先级 掌握各
种控制语句
河北师范大学软件学院 Java课程组
知识回顾/本讲先行知识 知识回顾 本
讲先行知识 什么是 什么是JDK、JRE
、 什么是 什么是JAVASE、
JAVAEE、JAVAME? 、 、 如何输出
如何输出helloworld
河北师范大学软件学院 Java课程组
本讲内容 Java的变量、常量 的变
量、 的变量 Java的运算符 的运算符
Java的语句 的语句
河北师范大学软件学院 Java课程组
回顾内存如何存放数据 电脑使用内存
来记忆计算时所使用的数据 内存如何
存储数据? 内存如何存储数据?
1 1、开房间(单人间、双人间、总
统套间) √ 2、入住
内存像旅馆
– 数据各式各样,要先根据数据的需
求(即类型 数据各式各样,要先根据
数据的需求( )为它申请一块合适的
空间
河北师范大学软件学院 Java课程组
变量
在银行存1000元钱,银行一年的利息
5%,那一 年之后钱变成了多少?
内存 变量:一个数据 存储空间的表
示 1050 98.7 6 不同数据存入具有不
同 内存地址的空间,相互独立
1000*(1+5%) 1000
对于专业程序员,数据存入内存不算
完: 怎么找到存入的数据? 存进去
还能改吗?
河北师范大学软件学院 Java课程组
为什么需要变量 内存地址不好记,怎
么办? 内存地址不好记,怎么办?
– 通过内存中小房间的别名找到数据
存储的位置
房间 对应 房间名字 房间类型 入住的
客人 变量名 变量类型 变量值 变量
变量是存储数据的一个基本单元
河北师范大学软件学院 Java课程组
变量命名规则2-1 变量命名规则
Java语言中,变量命名要符合一定规
则
money,score,name,sex
首字母 变 量 名 1、字母 2、下划
线‘_’ 3、‘$$’ 符号 其余部分 任意多
的: 1、数字 2、字母 3、下划线‘_’
4、‘$$’ 符号
变量命名规范: 简短且能清楚地表明
变量的作用,通常第一个单词的首字
母小写,其后单词的 首字母大写。例
如:myScore
河北师范大学软件学院 Java课程组
变量命名规则2-2 变量命名规则
检查下面这些是否是合法的变量名
principal $$lastname zip code
×
123rate
×
discount%
×
City
cost_price
marks_3
city
×
int
河北师范大学软件学院 Java课程组
变量应用 1、在内存中存储本金1000
元 、在内存中存储本金 元 2、显示
内存中存储的数据的值 、
public class HelloWorld { public
static void main(String[ ] args)
{ int money = 1000; //存数据
System.out.println(money); //使用
数据 } 数据类型 } 变量名 内存空间存
的数值
河北师范大学软件学院 Java课程组
变量的声明和赋值
数据类型 变量名 = 数值; 数据类型
变量名; 变量名 = 数值; int
money = 1000; int money; money
= 1000 ;
使用变量的步骤: 使用变量的步骤:
– 第一步:声明一个变量 第一步:
根据类型开辟空间
– 第二步:赋值 第二步:
将数据存入空间
– 第三步:使用变量 第三步:
取出数据使用
河北师范大学软件学院 Java课程组
常量 常量是一种标识符,它的值在运
行期间恒 常量是一种标识符, 定不
变 常量标识符在程序中只能被引用,
而不能 常量标识符在程序中只能被引
用, 被重新赋值
常量 圆周率PI 圆周率 圆周率PI
public static final double PI =
3.14159265358979323846; 圆周率
代码表示 方式 将ang角度转换成径度
角度转换成径度 public static
double toRadians(double ang)
{ return ang / 180.0 * PI; }
12 河北师范大学软件学院 Java课程
组
用法
常量的优点
如果不使用常量,直接在程序中填写
数字或字符串,将会 如果不使用常
量,直接在程序中填写数字或字符
串, 有什么麻烦? 有什么麻烦? 程
序的可读性变差: 程序的可读性变
差:用
public static double toRadians
(double ang) { return ang / 180.0 *
3.14159265358979323846; }
public static double toDegrees
(double ang) { return ang * 180.0 /
3.14159265358979323846; } 户很
难理解数字或字符 串的意思 程序的
可维护性变差: 程序的可维护性变
差:如 果数值改变, 果数值改变,
则需要在很 多地方改动, 多地方改
动,既麻烦又易 出错
public static final double PI =
3.14159265358979323846; // 圆周
率 public static double toRadians
(double ang) { return ang / 180.0 *
PI; } public static double
toDegrees(double ang) { return
ang * 180.0 / PI; } 使用常量可以增强
程序的可读性、 使用常量可以增强程
序的可读性、可维护性
13
河北师范大学软件学院 Java课程组
Java中常量的定义规则 中常量的定
义规则
加入 加入final 关键字代表常量, 加
入 关键字代表常量, 加入static 关
键字代表类 变量 尽量使用含义直观
的常量来表示那些将在程序中多次出
现的 数字或字符串
public class Student { public static
final int FEMALE = 1; //代表女性
public static final int MALE = 2; //
代表男性 private int sex; //性别
public void setSex(int sex) { if
(sex==FEMALE)
System.out.println(“这是一名女学
生“); else if(sex == MALE)
System.out.println(“这是一名男学
生“); this.sex = sex; }}
14
河北师范大学软件学院 Java课程组
数据类型
河北师范大学软件学院 Java课程组
Java基本数据类型 基本数据类型
河北师范大学软件学院 Java课程组
整型字面值
在Java中有 种方法表示整数 中有3种
方法表示整数 中有
– 十进制 十进制(0~9):不需要任何
解释 :
int i = 99;
– 八进制 八进制(0~7):在数的前面
放置一个0(零) :在数的前面放置一
个 零
int six = 06; //值为 值为6 值为 int
nine = 011; //值为 值为9 值为
– 十六进制 十六进制(0~9,a~f):在数
前放置0x或者 :在数前放置 或者 或
者0X
int x = 0x0001; int y = 0Xb; int z =
0x7FFff;
在数字后面加上 或l,类型定义为 在
数字后面加上L或 ,类型定义为long
– long jo = 1109L; – long so =
0xFFFL;
河北师范大学软件学院 Java课程组
浮点字面值 浮点字面值默认为 浮点
字面值默认为double
– double d = 333242.00; – double
e = 987.44d; – double f = 423.22D;
float类型需要在字面值后面加 或f 类
型需要在字面值后面加F或 类型需要
在字面值后面加
– float jo = 1109.32F; – float so =
4423.00f;
河北师范大学软件学院 Java课程组
布尔字面值 布尔值只能定义为 布尔
值只能定义为true或false 或
– 一定注意使用布尔值的表达式 int x
= 1; if(x) { } //编译错误 编译错误 int
y = 1; if(x+y){ } boolean b = false;
if(b=true){ } if(b==true){ }
河北师范大学软件学院 Java课程组
字符字面值
char字面值表记为单引号内的单个字
符,字符实 字面值表记为单引号内的
单个字符, 字面值表记为单引号内的
单个字符 际上只是一个16位无符号
整数 位无符号整数, 际上只是一个
位无符号整数,不能直接输入的 字符
可以用转义字符 \
– char a = ‘a’; – char b = 98;
System.out.println(b); – char n =
‘\u004E’; System.out.println(n); –
char d = ‘\”’;
尽管字符串不是基本类型,但它能表
现为字面值 尽管字符串不是基本类
型,
– String s = “Hello”; – String hi =
“Hello”+”World”; – 字符串可以和
其他基本数据类型连接,返回字符串
类 字符串可以和其他基本数据类型连
接, 型
河北师范大学软件学院 Java课程组
基本数据类型转换
Boolean类型不可转换为其它的数据
类型 类型不可转换为其它的数据类型
整型、字符型、浮点型在混合运算中
相互转换,转 整型、字符型、浮点型
在混合运算中相互转换, 换时遵循以
下原则
– 容量小的类型字段转化为容量大的
类型,数据类型按容 容量小的类型字
段转化为容量大的类型, 量大小排序
(小 量大小排序 小 -> 大) byte→
short→ (char)→
int→long→float→ double – 容量大
的数据类型转换为容量小的数据类
型,要加上强 容量大的数据类型转换
为容量小的数据类型, 制转换符,但
可能造成精度降低或溢出,使用时要
注意 制转换符, 可能造成精度降低
或溢出, – 多种类型的数据混合运算
时,系统首先自动的将所有数 多种类
型的数据混合运算时,系统首先自动
的将所有数 据转化为容量最大的那种
数据类型, 据转化为容量最大的那种
数据类型,然后再进行计算
河北师范大学软件学院 Java课程组
涉及byte、short和char类型的运算
、 涉及 和 类型的运算 Java中涉及
中涉及byte、short和char类型的 中
涉及 、 和 类型的 运算操作首先会把
这些值转换为int类型, 类型, 运算
操作首先会把这些值转换为 类型 然
后对int类型值进行运算,最后得到
类型值进行运算, 然后对 类型值进
行运算 最后得到int 类型的结果。因
此,如果把两个byte类型 类型的结
果。因此,如果把两个 类型 值相
加,最后会得到一个int类型的结果
值相加,最后会得到一个 类型的结果
class Test { public static void
main(String []args){ byte
b1=10,b2=20; byte b3=b1+1; //此处
即报错,应改为byte b3=(byte)
(b1+1); b3=b1+b2; //此处即报错,
应改为byte b3=(byte)(b1+b2); } }
河北师范大学软件学院 Java课程组
运算符 算术运算符 关系运算符 逻辑
运算符 赋值运算符
河北师范大学软件学院 Java课程组
赋值运算符2-1 赋值运算符 某班的A
学员 成绩是80分 某班的 学员Java成
绩是 分,B学员与 学员 成绩是 学员
与 A学员成绩相同,输出 学员成绩
学员成绩相同, 学员成绩相同 输出B
学员成绩
int aScore = 80; 赋值运算符 int
bScore; aScore = bScore;
System.out.println(bScore); 代码
错误 80 副 本 80 bScore aScore
bScore = aScore ;
//将右边的值给左边的变量
河北师范大学软件学院 Java课程组
赋值运算符2-2 赋值运算符 赋值运算
符
变量名 表达式;
表达式举例
Z = (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条件结构
真 语句1 语句 语句2 语句 表达 式 假
if ( 条件 ) { //语句1 }else { //语句2 }
结合问题4
if ( 明天下雨) { 我不上课; 我不上
课; }else { 我去上课; 我去上
课; }
河北师范大学软件学院 Java课程组
多重if结构 多重 结构
多重if结构就是在 部分中还包含其他
if块 多重 结构就是在else部分中还包
含其他 块 结构就是在 部分中还包含
其他 多重if结构 多重 结构
if ( 条件 ) { //语句 语句 } else if ( 条
件 ) { //语句 语句 } else { //语句 语
句 }
河北师范大学软件学院 Java课程组
表达式 1 真 语句1 语句
假
表达式 2 真 可以有多个 语句2 语句
假
语句3 语句
可以省略
如何使用多重if结构 如何使用多重 结
构 使用多重if结构解决问题 使用多重
结构解决问题
int score = 70; //考试成绩 考试成绩
大于等于90分 大于等于 分 if ( score
>= 90 ) { System.out.println(“优
秀“); 大于等于80分 小于90分 大于等
于 分,小于。。 分 } else if (score >=
80 ) { System.out.println(“良好“); }
else if (score >= 60 ) { 大于等于60
分,小于80分 大于等于 分 小于 分 System.out.println
(“中等“); } else { 小于60分 小于 分
System.out.println(“差“); }
河北师范大学软件学院 Java课程组
switch结构 结构
switch结构 结构
switch (表达式 表达式) 表达式
{ case 常量 1: 语句; 语句 break;
case 常量 2: 语句; 语句 break;
default: 语句; 语句 } 计算表达式的
值
如果等于常量1 如果等于常量
如果等于常量2 如果等于常量
如果没有找到匹配的值
河北师范大学软件学院 Java课程组
常见错误
String day = “星期一 星期一“; 星期
一 switch (day){ case “星期一 星期
一“: 星期一 代码错误
System.out.println(“星期一:青菜
“); 星期一: 星期一 break; case “星
期二 星期二“: 星期二
System.out.println(“星期二:鱼 “);
星期二: 星期二 break; ……
default: } ……
河北师范大学软件学院 Java课程组
switch后面小括号中表达式的 后面
小括号中表达式的 值必须是整型或字
符型
比较switch和多重 结构 和多重if结构
比较 和多重 相同点
都可以实现多分支结构
不同点
– switch
只能处理等值的条件判断, 只能处理
等值的条件判断,且条件是整型变量
或字符 变量的等值判断 处理在else
部分还包含其它 结构,特别适合某个
变 部分还包含其它if结构 处理在 部
分还包含其它 结构, 量处于某个区
间时的情况
– 多重 多重if
河北师范大学软件学院 Java课程组
while循环 循环
符合条件, 符合条件,循环继续执
否则, 行;否则,循环退出 while
( 循环条件 ) { 循环操作 } 循环中被重
复 执行的操作 System.out.println
(“hello“); i ++; } int i = 1; while ( i
<= 30 ) {
循环条件 真
假
特点:先判断,再执行 特点:先判
断,
编码规范:缩进、 编码规范:缩进、
换行
循环操作
河北师范大学软件学院 Java课程组
怎样使用while循环 循环 怎样使用
录入班级人数和学员成绩, 录入班级
人数和学员成绩,计算班级学员的 平
均成绩
while(i<=stuNum){ 循环条件: 请
输入学号“ 循环条件:目前录入的成
绩数目 System.out.print(“请输入学
号 + i + “的成绩:“); 的成绩: 请输
入学号 的成绩 小于总人数 score =
input.nextInt(); sum = sum +
score; 循环操作:录入学生成绩, 循
环操作:录入学生成绩,并累 i++; }
加求和 avg = sum / stuNum ;
河北师范大学软件学院 Java课程组
do-while循环 循环
do {
先执行一遍循环操作
循环操作
循环操作
真
} while ( 循环条件 ); 符合条件,循
环继续执行; 符合条件,循环继续执
行; 否则, 否则,循环退出
循环条件 假
特点:先执行, 特点:先执行,再判
断
河北师范大学软件学院 Java课程组
比较while和do-while 和 比较
while循环和 循环和do-while循环的
区别 循环和 循环的区别
– 语法不同
while ( 循环条件 ) { 循环操作 } 先判
断, 先判断,再执行 do { 循环操
作 } while( 循环条件 ); 先执行, 先
执行,再判断
– 初始情况不满足循环条件时
while循环一次都不会执行 循环一次
都不会执行 do-while循环不管任何
情况都至少执行一次 循环不管任何情
况都至少执行一次 循环不管任何情况
都
河北师范大学软件学院 Java课程组
什么是for循环 什么是 循环
for循环的语法和执行顺序 循环的语
法和执行顺序
1 for( } 3 参数初始化 表达式1 表达
式 ; 循环操作 ; 2 条件为true 条件为
条件判断 ; 表达式2 表达式 循环体被
执行 4
){ 更新循环变量 表达式3 表达式
for ( int i = 0 ;
i < 100 ;
i++ ) {
System.out.println(“hello“); } 代码
规范:格式对齐、 代码规范:格式对
齐、代码的缩进
河北师范大学软件学院 Java课程组
为什么需要break语句 语句 为什么需
要
描述4000米长跑比赛 语句 回顾
break用于 米长跑比赛 用于switch
语句 描述 回顾 用于 第8圈, 圈 快累
死了… 快累死了 我要退出… 我要退
出
int i = 2; for (int i switch(i){= 0;
i<10; i++) { 跑400米; 米 case 1: 星
期一“); 星期一 if
(System.out.println(“星期一 不能
坚持) (不能坚持){ break;
break; //退出比赛 退出比赛 case
2: } } System.out.println(“星期二
星期二“); 星期二 break; } 遇到
break,立即跳出 遇到 ,立即跳出
switch语句 语句 //其他语句 其他语
句
河北师范大学软件学院 Java课程组
break语句 语句 break:改变程序控
制流 :
– 用于 用于do-while、while、for中
时,可跳出循环 中时, 、 、 中时 而
执行循环后面的语句
while(…) { …… …… …… break; ……
…… …… } break通常在循环中与 通
常在循环中与 条件语句一起使用 跳
出 整 个 循 环
河北师范大学软件学院 Java课程组
为什么需要continue语句 语句 为什
么需要
循环录入Java课的学生成绩,统计分
数大于等于 80分 课的学生成绩, 循
环录入 课的学生成绩 分 的学生比例
1、通过循环,获得分数大 、通过循
环, 于等于80分的学生人数 分的学
生人数num 于等于 分的学生人数
2、判断:如果成绩<80,不 、判
断:如果成绩 , 执行num++,直接
进入下一 执行 , 次循环
河北师范大学软件学院 Java课程组
continue语句 语句
continue :只能用在循环里
continue 作用:跳过循环体中剩余
的语句而执行 作用: 下一次循环
继 续 下 一 次 循 环 while(…) { ……
…… …… continue; …… …… } for(int
i = 0; i<10;i++){ 400 { if
continue; // } ; } 语句
循环总结
指出各种循环结构的执行顺序 int
i=0; 1 int i=0; 1 int sum=0; 1 2
4
int sum=0; 2 while( i<10 ){ 3 4 }
sum=sum+i; i++;
int sum=0; do{ 2 sum=sum+i; 3 i+
+; }while(i<10); 4
for(int i=0;i<10;i++){ sum=sum
+i; } 3
while和for相同,先进行判断,后执
行循环体内容 和 相同 先进行判断,
相同, do-while是先执行,后判
断,至少执行一次 是先执行, 是先
执行 后判断,
河北师范大学软件学院 Java课程组
控制流语句小结
顺序结构:语句顺序执行 顺序结构:
分支结构:语句在满足条件下执行 分
支结构:
– if, if-else, if-else if-else, switch
循环结构:语句在满足条件下循环执
行多次 循环结构:
– while, do-while, for
跳转语句
– break, continue
河北师范大学软件学院 Java课程组
程序调试 调试 —— 程序员 程序员
70%时间在做的事情 时间在做的事情
调试史话
找出并解决bug的过程 的过程 找出并
解决
bug 缺陷 设置断点 单步执行
debug 调试 观察变量
调试的主要方法
河北师范大学软件学院 Java课程组
小结
变量、常量、数据类型 变量、常量、
运算符有哪些 语句结构有哪几种
河北师范大学软件学院 Java课程组
实验
河北师范大学软件学院 Java课程组
本讲结束 谢谢大家
河北师范大学软件学院 Java课程组
全部回复 (2)
2012-12-24 06:19:00
沙发
怎么不把整个电子书传来
2013-05-09 18:39:00
板凳
<br/>道,可道,非常道;名,非常名!
登录 后才能回复
flag举报帖子