位运算符
位与&:有0则0
位或|:有1则1
位异或^:相同为0,不同为1
特点:一个数据被一个数据位异或两次,其值是他本身.
反码~:按位取反,全部位.
n<<m(左移):n的补码左移m位,右边不够的补0,左边的舍弃掉.(n*2^m)
n>>m(右移):n的补码右移m位,左边不够的补0,右边的舍弃掉.(n/2^m)
n>>>m(无符号右移):n的补码右移m位;左边不够的是负数就补1,正数就补0,右边的舍弃.
三目运算符(三元)
格式:(表达式)?执行语句1:执行语句2
执行流程:先判断表达式是否成立,假如成立,执行语句1,否则执行语句2.
键盘录入对象
1:导包import java.util.Scanner;
2:创建键盘录入对象Scanner sc=new Scanner(System.in);
3:提示并录入数据System.out.println();
int 变量名=sc.nextInt();
4:然后使用这个录入的变量
if(选择结构语句)
格式1:if(表达式){
语句;
}
格式2:if(表达式){
语句;
}else{
语句;
}
格式2和三目运算符比较类似但有差异:
if语句后面可以跟结果或者是一个输出语句.
三目运算符只可以跟结果.
格式3:if(表达式){
语句1;
}else if(表达式){
语句2;
}
...
...
...
else{
语句n+1;
}
switch(选择控制语句)
格式:
switch(表达式){
case 值1:
输出语句;
break;
case 值2:
输出语句;
break;
default:
输出语句;
break;
}
//switch后面可以加基本数据类型:byte,short,int,char.
jdk5以后可以加枚举;
jdk7以后可以加String字符串;
case后面只能加常量
注意:case后面的break一般都不能省略,否则会造成case穿透.
default可以在语句中:在语句中的时候case不能省略.否则会造成case穿透.
可以在语句末尾的时候可以省略.
for(循环结构语句)
格式:for(初始化语句;条件表达式;控制语句){
循环体;
}
执行流程:先初始化语句;然后判断条件表达式是否成立,成立的话,执行循环体,并且执行控制语句;直到不成立,循环结束;
for循环嵌套
格式:
for(初始化语句;条件表达式;控制体语句){外层循环
for(初始化语句;条件表达式;控制体语句){内层循环
循环体语句;
}
//百钱买百鸡
//九九乘法表
while(循环结构语句)
格式:
初始化语句;
while(条件表达式){
循环体;
控制体;
}
执行流程:先初始化语句;然后判断条件表达式是否成立,成立的话,执行循环体;执行控制体语句;直到不成立,循环结束;
do_while(循环结构语句)
格式:
初始化语句:
do{
循环体语句;
控制语句;
}while(条件表达式)
执行流程:先初始化语句;然后执行循环体语句,控制体语句;判断条件表达式是否成立,成立的话继续执行循环体语句,否则循环结束.
循环体语句至少执行一次;
常见的两种死循环
for循环的死循环格式
for(;;){
//当满足某个条件的时候,结束 ----->break;
循环体语句;
}
开发中,使用多:while循环:死循环格式
while(true){
//当满足某个条件的时候,结束 ----->break;
循环体语句;
}
跳转控制语句
break:中断,结束;
不能单独使用,
1)只能在switch或者循环语句中使用;单循环for循环中使用
2)在for循环嵌套中使用
break标签语句;
给外层循环,或者内层循环起名字-->标签语句;
continue:继续-->结束当前循环,立即进入下次循环.
不能单独使用
return: