《运算符和语句》总结 Day03 张伦琦
1. 运算符
1.1比较运算符
A:名称:比较运算符又叫关系运算符。
B:注意:1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
2:比较运算符“==”不能误写成“=” 。
1.2逻辑运算符
A:注意:1.只能对boolean类型的值进行运算
2.结果也是boolean类型的值
3.在Java中不可以写成3<x<6,应该写成(x>3) && (x<6) 。
1.3位运算符
A:1.运算方法:
00000011 3
--------
‘<<’右边补0 000000110 3<<1
--------
00000001100 3<<1
---------
‘>>’左边补足最高位,‘>>>’左边补0
System.out.println(3>>1); //1,3/(2^1)=1
System.out.println(3>>2); //1,3/(2^2)=0
System.out.println(3>>>1);
‘&’ 同时为1才为1,其他为0.
0000 0110
0000 0011
---------
0000 0010=2
System.out.println(6&3);
‘|’ 同时为0才为0,其他为1。
0000 0110
0000 0011
---------
0000 0111=7
System.out.println(6|3);
‘^’ 相同为0,相异为1。
0000 0110
0000 0011
---------
0000 0101=5
System.out.println(6 ^ 3);
'~' 逐位取反,0变1,1变0.
6 0000 0110 (补码)
~6 1111 1001 (补码)/*计算机中都是拿补码计算,所以要转化成源码*/
1111 1001 (补码)
1111 1000 (反码)
1000 0111 (原码) -7
System.out.println(~6);
2.位运算的方法巧用做数值无中间量转化
int i=3;
int j=5;
i=i^j;
j=(i^j)^j;//j=i;
i=(i^j)^((i^j)^j);//i=j;
1.4三元运算符和优先级、结合性
A:三元运算符,三目运算符
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
B:表达式:是指用运算符连接起来的,符合java语法的式子。
Java表达式可以分为如下几种:
算数表达式:20+10
关系表达式:800>200
逻辑表达式:10>5 && 100<80
赋值表达式:a=10
C:条件表达式:
结果是boolean类型的表达式,要么是true,要么是false
D:注意:
‘&&’只要判断左端位0,整个表达式为0;
‘&’需要把整个表达式遍历完才能出结果。
‘||’只要判断左端位1,整个表达式为1;
‘|’需要把整个表达式遍历完才能出结果。
2. 控制语句
2.1分支语句-IF
A:if语句的第一种格式
if(条件表达式){
执行语句;
}
条件表达式: 结果是boolean 只有为true才执行语句,为false不执行语句。
B:if语句的第二种格式
if(条件表达式){
执行语句;//true
}else{
执行语句;//false
}
C:if语句的第三种格式
if(条件表达式){
执行语句;//true
}else if(条件表达式){
执行语句;
}
·
·
·else{
执行语句;
}
D:注意:
a.每一种格式都是单条语句。
b.不要在if()后写;
c.(j>i)?j:i;最终会产生一个结果,而且结果必须有用,if-else语句没有这个限制。
2.2分支语句-switch
A:用法:
switch(表达式){
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}
B:注意:
1.表达式:不是条件表达式,byte short int char (新特性能支持String)
2.case:情况,不能重复。
3.break:结束穿透
4.default:默认选项,可以在最后(推荐写在最后,加上break),
也可以在开头,还可以在中间的位置。
5.switch有两种结束方式,遇到break和遇到switch的结束符号}
6.好处:1.书写清晰2.执行稍快
2.3循环结构-while
while语句格式:
while(条件表达式)
{
执行语句;
}
1.条件表达式:boolean,为TRUE执行括号中的语句
2.执行语句:代表我们要办的事情。而且这事情是重复的
3.while(true):死循环
4.注意不要写成无法到达的语句。
5.凡是重复的就想着用循环
2.4循环结构-do-while
do while语句格式:
do
{
执行语句;//要办的事情
}while(条件表达式);
条件表达式:boolean
while和do-while的区别
while是先决条件循环
while是先判断条件,在执行循环体。
do-while是后决条件循环
do-while先执行一次循环体,再判断循环条件,根据判断的结果决定是否循环执行循环体。
2.5循环结构-for
for(初始化表达式1;循环条件表达式2;循环后的操作表达式3)
{
执行语句;
}
for(初始化表达式1;循环条件表达式2;循环后的操作表达式3)
for(int i=1;i<=100;i++){
System.out.println(i);//执行语句
}
1. 运算符
1.1比较运算符
A:名称:比较运算符又叫关系运算符。
B:注意:1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
2:比较运算符“==”不能误写成“=” 。
1.2逻辑运算符
A:注意:1.只能对boolean类型的值进行运算
2.结果也是boolean类型的值
3.在Java中不可以写成3<x<6,应该写成(x>3) && (x<6) 。
1.3位运算符
A:1.运算方法:
00000011 3
--------
‘<<’右边补0 000000110 3<<1
--------
00000001100 3<<1
---------
‘>>’左边补足最高位,‘>>>’左边补0
System.out.println(3>>1); //1,3/(2^1)=1
System.out.println(3>>2); //1,3/(2^2)=0
System.out.println(3>>>1);
‘&’ 同时为1才为1,其他为0.
0000 0110
0000 0011
---------
0000 0010=2
System.out.println(6&3);
‘|’ 同时为0才为0,其他为1。
0000 0110
0000 0011
---------
0000 0111=7
System.out.println(6|3);
‘^’ 相同为0,相异为1。
0000 0110
0000 0011
---------
0000 0101=5
System.out.println(6 ^ 3);
'~' 逐位取反,0变1,1变0.
6 0000 0110 (补码)
~6 1111 1001 (补码)/*计算机中都是拿补码计算,所以要转化成源码*/
1111 1001 (补码)
1111 1000 (反码)
1000 0111 (原码) -7
System.out.println(~6);
2.位运算的方法巧用做数值无中间量转化
int i=3;
int j=5;
i=i^j;
j=(i^j)^j;//j=i;
i=(i^j)^((i^j)^j);//i=j;
1.4三元运算符和优先级、结合性
A:三元运算符,三目运算符
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
B:表达式:是指用运算符连接起来的,符合java语法的式子。
Java表达式可以分为如下几种:
算数表达式:20+10
关系表达式:800>200
逻辑表达式:10>5 && 100<80
赋值表达式:a=10
C:条件表达式:
结果是boolean类型的表达式,要么是true,要么是false
D:注意:
‘&&’只要判断左端位0,整个表达式为0;
‘&’需要把整个表达式遍历完才能出结果。
‘||’只要判断左端位1,整个表达式为1;
‘|’需要把整个表达式遍历完才能出结果。
2. 控制语句
2.1分支语句-IF
A:if语句的第一种格式
if(条件表达式){
执行语句;
}
条件表达式: 结果是boolean 只有为true才执行语句,为false不执行语句。
B:if语句的第二种格式
if(条件表达式){
执行语句;//true
}else{
执行语句;//false
}
C:if语句的第三种格式
if(条件表达式){
执行语句;//true
}else if(条件表达式){
执行语句;
}
·
·
·else{
执行语句;
}
D:注意:
a.每一种格式都是单条语句。
b.不要在if()后写;
c.(j>i)?j:i;最终会产生一个结果,而且结果必须有用,if-else语句没有这个限制。
2.2分支语句-switch
A:用法:
switch(表达式){
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}
B:注意:
1.表达式:不是条件表达式,byte short int char (新特性能支持String)
2.case:情况,不能重复。
3.break:结束穿透
4.default:默认选项,可以在最后(推荐写在最后,加上break),
也可以在开头,还可以在中间的位置。
5.switch有两种结束方式,遇到break和遇到switch的结束符号}
6.好处:1.书写清晰2.执行稍快
2.3循环结构-while
while语句格式:
while(条件表达式)
{
执行语句;
}
1.条件表达式:boolean,为TRUE执行括号中的语句
2.执行语句:代表我们要办的事情。而且这事情是重复的
3.while(true):死循环
4.注意不要写成无法到达的语句。
5.凡是重复的就想着用循环
2.4循环结构-do-while
do while语句格式:
do
{
执行语句;//要办的事情
}while(条件表达式);
条件表达式:boolean
while和do-while的区别
while是先决条件循环
while是先判断条件,在执行循环体。
do-while是后决条件循环
do-while先执行一次循环体,再判断循环条件,根据判断的结果决定是否循环执行循环体。
2.5循环结构-for
for(初始化表达式1;循环条件表达式2;循环后的操作表达式3)
{
执行语句;
}
for(初始化表达式1;循环条件表达式2;循环后的操作表达式3)
for(int i=1;i<=100;i++){
System.out.println(i);//执行语句
}
</pre> 2.6循环结构-循环嵌套 <pre name="code" class="java"> class ForTest
{
public static void main(String[] args)
{
/*
打印这个图形状
*****
*****
*****
*****
*****
for (int i=1;i<=5;i++ ){//控制着换行
//我们的任务,星花和换行
for(int j=1;j<=5;j++){//5个星花
System.out.print("*");
}
System.out.println();//换行
}
打印以下图形
11111
22222
33333
44444
55555
for (int i=1;i<=5;i++ ){
for(int j=1;j<=5;j++){
System.out.print(i+1);
}
System.out.println();
}
打印以下图形
22222
33333
44444
55555
66666
for (int i=1;i<=5;i++ ){
for(int j=1;j<=5;j++){
System.out.print(i+1);
}
System.out.println();
}
*/
/*
打印以下图形
12345
12345
12345
12345
12345
for (int i=1;i<=5;i++ ){//控制行
for(int j=1;j<=5;j++){//控制列
System.out.print(j);
}
System.out.println();
}
打印以下图形
12345
23456
34567
45678
56789
for (int i=1;i<=5;i++ ){//控制着换行
for(int j=1;j<=5;j++){
System.out.print(i+j-1);
}
System.out.println();
}
*/
/*
打印以下图形
*****
****
***
**
*
//带临时变量k
for (int i=1,k=0;i<=5;i++ ){
for(int j=1;j<=5-k;j++){
System.out.print("*");
}
System.out.println();
k++;
}
//替换掉带临时变量k
for (int i=1;i<=5;i++){
for(int j=1;j<=5-(i-1);j++){
System.out.print("*");
}
System.out.println();
}
11111
2222
333
44
5
for (int i=1;i<=5 ;i++){
for (int j=1;j<=5-(i-1) ;j++ ){
System.out.print(i);
}
System.out.println();
}
12345
1234
123
12
1
for (int i=1;i<=5 ;i++){
for (int j=1;j<=5-(i-1) ;j++ ){
System.out.print(j);
}
System.out.println();
}
12345
2345
345
45
5
for (int i=1;i<=5 ;i++){
for (int j=1;j<=5-(i-1);j++ ){
System.out.print(j+i-1);
}
System.out.println();
}
*/
/*
*
**
***
****
*****
for (int i=1,k=4;i<=5 ;i++,k--){
for (int j=1;j<=5-k;j++ ){
System.out.print("*");
}
System.out.println();
}
1
22
333
4444
55555
for (int i=1,k=4;i<=5 ;i++,k--){
for (int j=1;j<=5-k;j++ ){
System.out.print(i);
}
System.out.println();
}
1
12
123
1234
12345
for (int i=1,k=4;i<=5 ;i++,k--){
for (int j=1;j<=5-k;j++ ){
System.out.print(j);
}
System.out.println();
}
*/
}
}