java 基础知识回顾 语句选择

条件运算符:
条件表达式 ? 值1: 值2;
条件表达式值为boolean类型的表达式 true,false
如果结果为true,最终的结果取值1
如果结果为false,最终的结果取值2
不管怎样最终肯定能得到一个结果
public static void main(String[] args){
//判断两个数的最大值
int a=5;
int b=7;
int result= a>b ? a : b;
System.out.println(result);
//求一个值是否为偶数
String str=a % 2 == 0 ? "偶数" : "奇数";
System.out.println(str);
//课后练习: 求三个数中最大的值 条件运算符
int c = 9;
int d = 17;
int e = 6;
int max = c > d?c > e?c:e:d>e?d:e;
System.out.println(max);
}
位运算符:
把操作数转为二进制,然后根据不同的位运算符的逻辑对二进制的操作数进行运算,最后得到
的结果,转为十进制
& : 两个2进制的操作数,同一位数的两个数如果有一个为0结果就为0,两个都为1才是1
| : 两个2进制的操作数,同一位数的两个数如果有一个为1,两个都为0才是0
^ : 两个2进制的操作数,同一位数的两个数如果相同为0,不同为1
位移运算符:
<< 左移 :把第一个二进制的操作数向做移动第二个操作数个位数,空余的位数补0,最终得到
二进制的值-->转为十进制
m << n ==> m*2^n
>> 右移 :把第一个二进制的操作数向右移动第二个操作数个位数,移动出的位数不要,只保留
剩下的位数的值-->转为十进制
m >> n ==> m/2^n
运算符优先级:
()->最高
单目算数位关系,逻辑三目后赋值
public static void main(String[] args){
System.out.println(3 & 2); //2
System.out.println(3 | 2); // 11 10 = 11->3
System.out.println(3 ^ 2); // 11 10 = 01->1

System.out.println(8 >> 2); // 2
System.out.println(8 << 2); // 32
System.out.println(9 << 2); // 36
System.out.println(9 >> 2); // 2
}
选择语句:
测试java中的流程控制语句
顺序结构: 从上倒下,从左到右
选择结构: 满足某些条件执行对应的语句
循环结构: 重复执行一些语句体
选择结构:
if..else
switch..

单选泽|单分支:
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结构
public static void main(String[] args){
int a=0;
if(false){
System.out.println(a+">0");
System.out.println(123); //同一个作用域内,自上而下执行语句体
}
System.out.println("if语句体完毕");

//双选择
if(a>0)
System.out.println(a+">0");
else
System.out.println(a+"<=0");


//多选择
if(a>0){
System.out.println(a+">0");
}else if(a==0){
System.out.println(a+"=0");
}else{
System.out.println(a+"<0");
}
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
不再判断.直接执行他们的语句体,直到遇到下一个break,或者switch的结束才结束
default: 与if的else很像,都是以上case 都满足,执行default中的内容;可以写在switch语句

任何位置,一般放在最后,放在最后break可以省略,如果放在其他位置省略break会
发生case穿透
public static void main(String[] args){
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;
}

//穿透
switch(flag){
case "红灯":
System.out.println(flag+"停");
case "绿灯":
System.out.println(flag+"行");
case "黄灯":
System.out.println(flag+"等一等");
break;
default:
System.out.println("你傻了吧,没有这种信号灯!!!");
}


char a=99;
switch(a){
default:
System.out.println("其他字符");
case 'a':
System.out.println("a");
break;
case 'b':
System.out.println("b");
break;
}

boolean b=false;
//使用switch进行定值判断
switch(b+""){
case "true":
System.out.println("true");
break;
case "false":
System.out.println("false");
break;
}
int i;
if(b==true){
i=0;
}else{
i=1;
}
switch(i){
case 1:
System.out.println("1");
break;
case 0:
System.out.println("0");
break;
}

//根据月份输出季节;
//穿透的作用
int month=10;
switch(month){
case 3:
case 4:
case 5:
System.out.println(month+"月是春季");
break;
case 6:
case 7:
case 8:
System.out.println(month+"月是夏季");
break;
case 9:
case 10:
case 11:
System.out.println(month+"月是秋季");
break;
case 12:
case 1:
case 2:
System.out.println(month+"月是冬季");
break;
default:
System.out.println("月份不符合格式");
}

}

}
循环
使用一些代码重复执行
默认只要满足条件无限次循环执行循环体 ,根据条件判断,内部使用break,结束循环

for循环 ***
while循环 **
do..while循环

for(条件初始化 ;条件判断 ;条件变化 ){
循环体语句;
}
条件初始化 :声明一个变量并赋值 int i=0;
条件判断: 对i条件的值进行判断,判断是否满足我让你循环的条件,如果满足条件,继续执行循环体
语句,不满足条件结束循环
条件变化: i自身值的改变,如果不改变就会发生死循环(永远执行的循环)

执行流程:
1.执行条件初始化
2.执行条件判断,值为boolean类型的表达式
3.如果值为false,循环结束,值为true,执行循环体语句
4.执行条件变化
从第二次循环开始,重复执行第2,3,4步

循环体语句只有一句的时候,前后的{}可以省略
public static void main(String[] args){
//条件:1)控制执行循环体的次数 2)仅再循环体内部使用
for(int i=1;i<=10;i++){
System.out.println("安红,我想你想的睡不着觉!!!--有话好好说"+i);
}
//打印1~100之间的每一个整数
for(int i=1;i<=100;i+=1){
System.out.println(i);
}

//1+2+3+4+5
int sum=0; //存储和
for(int i=1;i<=5;i++)
sum+=i;

System.out.println(sum);
//System.out.println(i); 作用域只在当前循环中有效

//死循环
/*for(;;){
System.out.println("haha~");
}*/
}
}

猜你喜欢

转载自www.cnblogs.com/DHY868168/p/11234111.html