1. Java 运算符
运算符 -->表达式 -->语句,如 int result=1+2;
1.1 Java运算符的分类
数学运算符:+ - * / %
赋值运算符:= += -= *= /= %=
自增自减运算符:++ --
关系运算符:> < >= <= != ==
逻辑运算符:&& || ! & |
位运算符: & | ^ ~ >> <<
三元运算符: 布尔表达式 ? 表达式1 : 表达式2
1.1 数学运算符: + - * / %
(1) 运算的封闭性:
1.同种类型参与数学运算,返回同种类型(可能发生:上溢出和下溢出)
2.不同类型参与数学运算的规则:
如果操作元只有byte、 short、 char、int,运算结果都是int型
如:byte a=1,b=1; byte c=a+b;//编译出错
如果操作元包含long、float、double,运算结果是大类型
练习:交换两个整数的值(2种算法)
//不使用中间变量
int a=10,b=20;
a = a + b;
b = a - b;
a = a - b;
(2) % 取余数运算
0%5 -> 0, 2%5->2, 5%5->0, -1%5->-1
------------------------------->
n -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10
n%5 -1 0 -4 -3 -2 -1 0 1 2 3 4 0 1 2 3 4 0
练习:打印输出100个数字,每10个数字一行
(3) 字符串的连接运算: +
任何数据与字符串连接(+) 都会生成新字符串
","+2 -> ",2" 'C'+2 -> "69"
1.2 赋值运算符:= += -= *= /= %=
int a=10; //使用=将10赋给变量a
a+=1; //使用复合赋值运算符+=,等价于a=a+1; 复合赋值运算符使程序更加简洁
1.3 自增自减运算符:++ --
++ 加1, -- 减1
"++"和"--"既可以作为前置运算符,也可以作为后置运算符
int x=0,i=10,k=100;
i=x++;//"++"作为后置运算符,i的值变为0,x的值变为1
k=++x;//"++"作为前置运算符,k的值变为2,x的值变为2
1.4 关系运算符:> < >= <= != ==
比较运算符的结果是boolean类型,如boolean b = '\u0000'==0;//true
1.5 逻辑运算符:&& || ! & |
逻辑操作符只能操作boolean类型的表达式,能够表达与、或、非三种逻辑
"&&"和"&"为与运算符,boolean c = a && b;
运算规则是:
a b c
true true true
true false false
false true false
false false false
"||"和"|"为或运算符,boolean c = a || b;
运算规则是:
a b c
true true true
true false true
false true true
false false false
如:int age = 12;
char sex = '男';
boolean isChild = age<16;
boolean isMan = sex=='男';
boolean isBoy = isChild && isMan;
boolean isGirl = isChild && !isMan;
boolean isKid = isBoy || isGirl;
"&&"和"||"称为短路运算符,当左边的布尔表达式能够计算出整个结果时,将不执行右边的布尔表达式。大多数情况下使用 短路运算符
"&"和"|"称为非短路运算符,始终执行左右边的布尔表达式
如: int i=1,j=1,k=0;boolean c = (i>j) && (i/k>2);//使用&&结果为false,使用&时报错
"!"为非运算符,true->false,false->true 如:int a=1; boolean b = !(a>1);//b的值为false
1.6 位运算符: & | ^ ~ >> <<
Java支持整数类型的位运算:
"&" 按位进行与运算,规则:1&1=1,1&0=0,0&1=0,0&0=0
练习:截取整数的后4位
int a=0x2a,b=0x0f;int c=a&b;//c=0x0a;
"|" 按位进行或运算,规则:1|1=1,1|0=1,0|1=1,0|0=0
练习:0xf0 | 0x0f = ?
"^" 按位进行异或运算,规则:1^1=0,1^0=1,0^1=1,0^0=0
练习:交换两个整数的值(使用异或运算符)
int a=10,b=20;
a = a ^ b;
b = b ^ a;
a = a ^ b;
"~" 按位取反,规则:~1=0, ~0=1
">>" 右移运算符,右移1位相当于除以2,如12>>2等价于12/(2*2)
"<<" 左移运算符,左移1位相当于乘以2,如12<<2等价于12*(2*2)
1.7 三元运算符: 布尔表达式 ? 表达式1 : 表达式2
如果布尔表达式为true,返回表达式1的值,否则返回表达式2的值
int a=1,b=1;
int c=a>b?a:b;//c=1
int rows = 20;//数据行数
int size = 10;//每页行数
int pages = rows%size==0 ? rows/size : rows/size+1; //页数
2 分支流程控制语句
分支语句使代码在满足特定条件的情况下才会被执行。
if...else语句
if(布尔表达式){
//...
}else if(布尔表达式){
//...
}else{
}
switch(){
}
练习:判断某一年是否为闰年(闰年共有366天,四年一闰,百年不闰,四百年再闰)
3. 循环流程控制(1)
3.1 循环语句的作用是反复执行一段代码,循环语句一般包括如下4个部分:
(1)初始化部分:用于设置循环的初始条件
(2)循环条件:一个布尔表达式,用于判断是否终止循环
(3)迭代部分:用于改变循环变量的值
(4)循环体:循环操作的主体内容
3.2 for 循环
for(初始化表达式;循环布尔表达式;迭代表达式){
循环体
}
练习1:计算1到100之和
作业:
1 复习并且完成 全部 课堂演示代码, 添加适当的 输出语句, 研究输出结果, 添加适当的注释.
2 (选做)案例练习 输出等额本息还款计划表
如(示例):
月份 本金 利息 归还
第1月 930 712 1642
第2月 940 701 1642
......
3. 将一个二进制数值的高4位和低4位交换
,如38的二进制形式为00100110,转变为01100010
4. 打印输出九九乘法表
1*1=1 1*2=2 ..1*9=9
1*2=2 2*2=4 .......
.
.
.
1*9=9 2*9=18 ......9*9=81
运算符 -->表达式 -->语句,如 int result=1+2;
1.1 Java运算符的分类
数学运算符:+ - * / %
赋值运算符:= += -= *= /= %=
自增自减运算符:++ --
关系运算符:> < >= <= != ==
逻辑运算符:&& || ! & |
位运算符: & | ^ ~ >> <<
三元运算符: 布尔表达式 ? 表达式1 : 表达式2
1.1 数学运算符: + - * / %
(1) 运算的封闭性:
1.同种类型参与数学运算,返回同种类型(可能发生:上溢出和下溢出)
2.不同类型参与数学运算的规则:
如果操作元只有byte、 short、 char、int,运算结果都是int型
如:byte a=1,b=1; byte c=a+b;//编译出错
如果操作元包含long、float、double,运算结果是大类型
练习:交换两个整数的值(2种算法)
//不使用中间变量
int a=10,b=20;
a = a + b;
b = a - b;
a = a - b;
(2) % 取余数运算
0%5 -> 0, 2%5->2, 5%5->0, -1%5->-1
------------------------------->
n -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10
n%5 -1 0 -4 -3 -2 -1 0 1 2 3 4 0 1 2 3 4 0
练习:打印输出100个数字,每10个数字一行
(3) 字符串的连接运算: +
任何数据与字符串连接(+) 都会生成新字符串
","+2 -> ",2" 'C'+2 -> "69"
1.2 赋值运算符:= += -= *= /= %=
int a=10; //使用=将10赋给变量a
a+=1; //使用复合赋值运算符+=,等价于a=a+1; 复合赋值运算符使程序更加简洁
1.3 自增自减运算符:++ --
++ 加1, -- 减1
"++"和"--"既可以作为前置运算符,也可以作为后置运算符
int x=0,i=10,k=100;
i=x++;//"++"作为后置运算符,i的值变为0,x的值变为1
k=++x;//"++"作为前置运算符,k的值变为2,x的值变为2
1.4 关系运算符:> < >= <= != ==
比较运算符的结果是boolean类型,如boolean b = '\u0000'==0;//true
1.5 逻辑运算符:&& || ! & |
逻辑操作符只能操作boolean类型的表达式,能够表达与、或、非三种逻辑
"&&"和"&"为与运算符,boolean c = a && b;
运算规则是:
a b c
true true true
true false false
false true false
false false false
"||"和"|"为或运算符,boolean c = a || b;
运算规则是:
a b c
true true true
true false true
false true true
false false false
如:int age = 12;
char sex = '男';
boolean isChild = age<16;
boolean isMan = sex=='男';
boolean isBoy = isChild && isMan;
boolean isGirl = isChild && !isMan;
boolean isKid = isBoy || isGirl;
"&&"和"||"称为短路运算符,当左边的布尔表达式能够计算出整个结果时,将不执行右边的布尔表达式。大多数情况下使用 短路运算符
"&"和"|"称为非短路运算符,始终执行左右边的布尔表达式
如: int i=1,j=1,k=0;boolean c = (i>j) && (i/k>2);//使用&&结果为false,使用&时报错
"!"为非运算符,true->false,false->true 如:int a=1; boolean b = !(a>1);//b的值为false
1.6 位运算符: & | ^ ~ >> <<
Java支持整数类型的位运算:
"&" 按位进行与运算,规则:1&1=1,1&0=0,0&1=0,0&0=0
练习:截取整数的后4位
int a=0x2a,b=0x0f;int c=a&b;//c=0x0a;
"|" 按位进行或运算,规则:1|1=1,1|0=1,0|1=1,0|0=0
练习:0xf0 | 0x0f = ?
"^" 按位进行异或运算,规则:1^1=0,1^0=1,0^1=1,0^0=0
练习:交换两个整数的值(使用异或运算符)
int a=10,b=20;
a = a ^ b;
b = b ^ a;
a = a ^ b;
"~" 按位取反,规则:~1=0, ~0=1
">>" 右移运算符,右移1位相当于除以2,如12>>2等价于12/(2*2)
"<<" 左移运算符,左移1位相当于乘以2,如12<<2等价于12*(2*2)
1.7 三元运算符: 布尔表达式 ? 表达式1 : 表达式2
如果布尔表达式为true,返回表达式1的值,否则返回表达式2的值
int a=1,b=1;
int c=a>b?a:b;//c=1
int rows = 20;//数据行数
int size = 10;//每页行数
int pages = rows%size==0 ? rows/size : rows/size+1; //页数
2 分支流程控制语句
分支语句使代码在满足特定条件的情况下才会被执行。
if...else语句
if(布尔表达式){
//...
}else if(布尔表达式){
//...
}else{
}
switch(){
}
练习:判断某一年是否为闰年(闰年共有366天,四年一闰,百年不闰,四百年再闰)
3. 循环流程控制(1)
3.1 循环语句的作用是反复执行一段代码,循环语句一般包括如下4个部分:
(1)初始化部分:用于设置循环的初始条件
(2)循环条件:一个布尔表达式,用于判断是否终止循环
(3)迭代部分:用于改变循环变量的值
(4)循环体:循环操作的主体内容
3.2 for 循环
for(初始化表达式;循环布尔表达式;迭代表达式){
循环体
}
练习1:计算1到100之和
作业:
1 复习并且完成 全部 课堂演示代码, 添加适当的 输出语句, 研究输出结果, 添加适当的注释.
2 (选做)案例练习 输出等额本息还款计划表
如(示例):
月份 本金 利息 归还
第1月 930 712 1642
第2月 940 701 1642
......
3. 将一个二进制数值的高4位和低4位交换
,如38的二进制形式为00100110,转变为01100010
4. 打印输出九九乘法表
1*1=1 1*2=2 ..1*9=9
1*2=2 2*2=4 .......
.
.
.
1*9=9 2*9=18 ......9*9=81