&(并且)
& 运算两端,只要有任意一端为false其最终结果就是false, 只有两端都为true 其最终结果才是true
int a=10;
int b=20;
// false&true true&false false&false 这些情况结果是false
//true&true 这个情况结果是true
boolean flag=a>10&b>20;
flag=true&true;
System.out.println("flag:"+flag);
|(或者)
| 运算两端,只要有任意一端为true,其最终结果就是true,只有两端都为false 最终结果才是false
// false | true true|false true|true 这些情况结果都是true
//false|false 这个情况结果是false
boolean flag2=a>10|b>20;
flag2=true|false;
flag2=false|true;
flag2=false|false;
System.out.println("flag2:"+flag2);
!(非)
! 取反
System.out.println(!true);
System.out.println(!false);
System.out.println(!(a==b));
^(异或)
//^(异或) 不同为true,相同为false
//true^true false^false 结果都是false
//false^true true^false 结果都是true
//情侣关系: 男男 女女 false 女男 男女 true
System.out.println(true^true);
System.out.println(false^false);
System.out.println(true^false);
System.out.println(false^true);
&&(短路与)
&和&& 的区别?
他们在运算结果上没有区别,只是在运算效率上有区别?
int a=10;
int b=20;
//& 他运算两端的表达式都会执行。
//&& 当左端的运算结果为false时,右端的表达式,就不执行了,因为没有必要
///&& 当左端的运算结果为true时,右端的表达式,还是要执行的。
boolean f=a>b&&++a<10;
System.out.println("f:"+f);
System.out.println("a:"+a);
||(短路或)
| 和 || 的区别?
他们在运算结果上没有区别,只是在运算效率上有区别?
int x=10;
int y=20;
// | 他两端的表达式,都会执行。
// || 当左边的表达式为true,右端的表达式,就不执行了,没必要。
// || 当左边的表达式为false 时,右端的表达式,还是得执行。
boolean f2=x>y||++x<10;
System.out.println("x:"+x);
System.out.println("f2:"+f2);
三元运算符的基本用法
A:三元(三目)运算符的格式
(关系表达式) ? 表达式1 : 表达式2;
int a=(10>20)?30:50; a=50
B:三元运算符的执行流程
计算关系表达式的值,如果为true, 运算后的结果是表达式1;
如果为false,运算后的结果是表达式2;
键盘录入
a:导包
格式:
import java.util.Scanner;
位置:
在class上面。
b:创建键盘录入对象
格式:
Scanner sc = new Scanner(System.in);
c:通过对象获取数据
格式:
int x = sc.nextInt();
流程控制语句之循环语句
If语句
选择结构的分类
if语句
switch语句
B:if语句有几种格式
格式1
格式2
格式3
C:if语句的格式1
if(比较表达式或者是boolean类型的值) {
语句体;
}
D:执行流程:
先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体;
如果是false,就不执行语句体;
if语句的格式2
if(比较表达式) {
语句体1;
}else {
语句体2;
}
注意事项:else后面是没有比较表达式的,只有if后面有。
B:执行流程:
首先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体1;
如果是false,就执行语句体2;
for循环
for循环的语句结构如下所示:
for(初始化语句;布尔表达式;步进公式){undefined
循环执行语句块
}
2)执行步骤:
①初始化语句是在循环开始之前初始化一个变量的值
②在初始化语句执行过以后,执行布尔表达式,如果为true则执行循环语句块,如果为false则循环结束
③循环执行语句块执行过以后,执行步进公式
④步进公式执行以后,再去执行布尔表达式,如果为true则再次执行循环语句块,如果为false则循环结束
⑤步骤描述为:初始化语句-->布尔表达式-->循环执行语句块-->步进公式-->布尔表达式-->循环执行语句块-->步进公式-->布尔表达式…………
其中初始化语句只会执行一次。
求出100之内的偶数
int sum=0;
//第一种
for(int i=0;i<=100;i+=2){
sum=sum+i;}
System.out.println(sum);
//第二种
for(int i=0;i<=100;i++){
if(i%2==0){
sum=sum+i;}}
System.out.println(sum);
While循环
-
- 循环结构while语句的格式: - while循环的基本格式: while(判断条件语句) { 循环体语句; } - 完整格式: 初始化条件语句; while(判断条件语句) { 循环体语句; 控制条件语句; } - 执行流程: - 执行初始化条件语句; - 执行判断条件语句,看其返回值是true还是false 如果是true,就继续执行 如果是false,就结束循环 - 执行循环体语句; - 执行控制条件语句 回到判断语句继续。
do while
-
- do while 特点:先执行一次do里面的代码,在判断,循环条件是否成立,如果成立继续循环,不成立结束循环 - 循环结构do...while语句的格式: do { 循环体语句; }while(判断条件语句); - 完整格式; 初始化条件语句; do { 循环体语句; 控制条件语句; }while(判断条件语句);- - 执行流程: - 执行初始化条件语句; - 执行循环体语句; - 执行控制条件语句; - 执行判断条件语句,看其返回值是true还是false 如果是true,就继续执行 如果是false,就结束循环 - 回到继续。
三种循环语句的区别
> do...while循环至少执行一次循环体。 > 而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。 > 如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用for循环。 > 因为变量及早的从内存中消失,可以提高内存的使用效率。 > 建议优先考虑for循环,然后是while循环 ,最后是do...while循环
控制跳转语句
- **break:**终止循环,用于循环场景中,脱离循环场景没有意义。
- **continue:**用于循环场景中,离开循环场景没意义,跳出一次循环继续下一次循环