条件运算符
条件运算符:
条件表达式 ? 值1: 值2;
条件表达式值为boolean类型的表达式 true,false
如果结果为true,最终的结果取值1
如果结果为false,最终的结果取值2
最终肯定能得到一个结果
位运算符详解
把操作数转为二进制,然后根据不同的位运算符的逻辑对二进制的操作数进行运算,最后得到的结果,转为十进制
& : 两个2进制的操作数,同一位数的两个数如果有一个为0结果就为0,两个都为1才是1
| : 两个2进制的操作数,同一位数的两个数如果有一个为1,两个都为0才是0
^ : 两个2进制的操作数,同一位数的两个数如果相同为0,不同为1
位移运算符:
<< 左移 :把第一个二进制的操作数向做移动第二个操作数个位数,空余的位数补0,最终得到二进制的值–>转为十进制
m << n ==> m*2^n
右移 >>:把第一个二进制的操作数向右移动第二个操作数个位数,移动出的位数不要,只保留剩下的位数的值–>转为十进制
m >> n ==> m/2^n
优先级
运算符优先级:
()->最高
单目算数位关系,逻辑三目后赋值
Scanner 类的用法
- 导包
- Scanner sc = new Scanner(System.in);
- int a = sc.nextInt();
Scanner sc = new Scanner( System.in);
System.out.println("请输入第一个数值:");
int a = sc.nextInt();
System.out.println("请输入第二个数值:");
int b = sc.nextInt();
System.out.println("请输入第三个数值:");
int c = sc.nextInt();
Random类的用法
1.导包 import java.util.Random
2.创建Random类型的变量
3.使用功能
nextInt() 随机产生一个int范围内的随机数
nextInt(整数n) 随机产生一个 [0,n)整数
nextDouble() 产生[0,1)之间的随机小数
Random ran=new Random();
int num1=ran.nextInt();
流程控制语句
单选泽|单分支:
if(条件表达式){
语句体;
}
执行流程:
1.条件表达式:值为boolean类型的表达式 true,fasle
2.如果值true,执行{}中的语句体
如果值false,不执行语句体,直接跳过if的结构
双选泽|双分支:
if(条件表达式){
语句体1;
}else{
语句体2;
}
如果满足条件执行语句体1,不满足条件执行语句体2
如果是这种双选择结构,肯定有结果
多选泽|多分支:
if(条件表达式1){
语句体1
}else if(条件表达式2){
语句体2
}else if(条件表达式3){
语句体3
}
…
else{
语句体n;
}
如果语句体只有一句,前后的{}可以省略
如果if整体结构,存在一个单独的没有条件的else{} 整个if结构肯定有结果,否则可能不满足条件就没有执行的语句体
if和条件运算符选择:
1.条件运算符肯定有结果,if结构可能没有结果
2.多个条件使用if比较简单,条件运算符需要使用逻辑运算符|进行条件运算符的嵌套
简单的使用条件运算符,复杂的使用if结构
static int x =10;
static int y =10;
static int z =10;
Scanner sc = new Scanner( System.in);
System.out.println("请输入第一个数值:");
int a = sc.nextInt();
System.out.println("请输入第二个数值:");
int b = sc.nextInt();
System.out.println("请输入第三个数值:");
int c = sc.nextInt();
if ( a ==x && b == y && c == z)
{
System.out.println("这个人是一个高富帅!");
}
else if (( a ==x && b == y ) || ( a ==x && c== z ) )
{
System.out.println("这个人是一个暖男!");
}
else if (( a ==x && b == y ) || ( b ==y && c== z ) )
{
System.out.println("这个人是一个暖男!");
}
else if (a == x || b== y || c == z)
{
System.out.println("这个人是一个潜力股!");
}
else
{
System.out.println("这是一个臭屌丝!!!!!!!! 妹子请远离! !!!!!!!!!");
}
Switch
switch语句:定值判断
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体;
break;
}
表达式: 一般为变量|表达式|定值(不使用)
byte,short,char,枚举(1.5),字符串(1.7)
case:表达式的结果需要与case后的值进行判断,如果满足条件就执行后语句体,如果不满足条件,继续向下面的case进行判断
break:结束swtich,防止case穿透:如果满足条件的case后的语句体后没有break,下面的case不再判断.直接执行他们的语句体,直 到遇到下一个breark,或者直到switch结束才结束。
default: 与if的else很像,都是以上case 都满足,执行default中的内容
可以写在switch语句的任何位置,一般放在最后,放在最后break可以省略,如果放在其他位置省略break会发生case穿透
String flag="绿灯";
switch(flag){
case "红灯":
System.out.println(flag+"停");
break;
case "绿灯":
System.out.println(flag+"行");
break;
case "黄灯":
System.out.println(flag+"等一等");
break;
default:
System.out.println("你傻了吧,没有这种信号灯!!!");
break;
}
FOR循环
for(条件初始化 ;条件判断 ;条件变化 ){
循环体语句;
}
条件初始化 :声明一个变量并赋值 int i=0;
条件判断: 对i条件的值进行判断,判断是否满足我让你循环的条件,如果满足条件,继续执行循环体语句,不满足条件结束循环
条件变化: i自身值的改变,如果不改变就会发生死循环(永远执行的循环)
执行流程:
1.执行条件初始化
2.执行条件判断,值为boolean类型的表达式
3.如果值为false,循环结束,值为true,执行循环体语句
4.执行条件变化
从第二次循环开始,重复执行第2,3,4步
循环体语句只有一句的时候,前后的{}可以省略
class Love {
public static void main ( String [] args )
{
int mylove;
int i=0;
for (i=0;i<=3001;i++)
{
mylove=i;
System.out.println("我爱你"+mylove+"遍,每一天。");
}
}
}
2019.07.01