逻辑运算
三元运算符
package com.packagetwo;
public class MySanYuan {
public static void main(String[] args) {
int i=1;
int j=2;
int k= i<j?77:66;
System.out.println(k);
}
}
switch
package com.packagetwo;
public class MySwitch {
public static void main(String[] args) {
//如果使用if else
int day = 5;
if (day==1)
System.out.println("星期一");
else if (day==2)
System.out.println("星期二");
else if (day==3)
System.out.println("星期三");
else if (day==4)
System.out.println("星期四");
else if (day==5)
System.out.println("星期五");
else if (day==6)
System.out.println("星期六");
else if (day==7)
System.out.println("星期天");
else
System.out.println("这个是什么鬼?");
//如果使用switch
switch(day){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期天");
break;
default:
System.out.println("这个是什么鬼?");
}
}
}
while
条件为true时 重复执行
比较著名的就是瓶盖问题:啤酒2元1瓶,4个瓶盖可换一瓶,2个空瓶可换一瓶,问10元可喝多少瓶
package com.packagetwo;
public class MyXunHuan {
public static void main(String[] args) {
/**
* 啤酒2元1瓶,4个瓶盖可换一瓶,2个空瓶可换一瓶,问10元可喝多少瓶
* */
int ping = 5;
int pinggai=5;
int kongping=5;
int temp;
while (pinggai>=4 || kongping>=2){
if ((temp = pinggai/4)>0){
ping=ping+temp;
pinggai=pinggai-temp*4+temp;
kongping=kongping+temp;
}
if ((temp=kongping/2)>0){
ping=ping+temp;
pinggai=pinggai+temp;
kongping=kongping-temp*2+temp;
}
}
System.out.println(ping);
}
}
什么时候用while,什么时候用for
知道循环几次的时候,用for比较多,不知道循环几次的时候,用while
do-while
条件为true时 重复执行,至少会执行一次
package com.packagetwo;
public class MyXunHuan {
public static void main(String[] args) {
int i=5;
do {
System.out.println(i);
i--;
}while (i>0);
}
}
结果
5
4
3
2
1
continue
继续下一次循环,就是循环里的内容,continue下的就不执行了
package com.packagetwo;
public class MyXunHuan {
public static void main(String[] args) {
for (int i=0;i<5;i++){
if (i==3){
continue;
}
System.out.println(i);
}
}
}
结果
0
1
2
4
break
直接结束当前for循环=循环结束
package com.packagetwo;
public class MyXunHuan {
public static void main(String[] args) {
for (int i=0;i<5;i++){
if (i==3){
break;
}
System.out.println(i);
}
}
}
结果
0
1
2
++和–
%取模
public class HelloWorld {
public static void main(String[] args) {
int i = 5;
int j = 2;
System.out.println(i%j); //输出为1
}
}
&和&&
&
长路与 无论第一个表达式的值是true或者false,第二个的值,都会被运算
&&
短路与 只要第一个表达式的值是false的,第二个表达式的值,就不需要进行运算了
|和||
|
长路或 无论第一个表达式的值是true或者false,第二个的值,都会被运算
||
短路或 只要第一个表达式的值是true的,第二个表达式的值,就不需要进行运算了
!和^
!
取反,true变为false,false变为true
^
异或
public class HelloWorld {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println(a^b); //不同返回真
System.out.println(a^!b); //相同返回假
}
}