文章目录
运算符和表达式
与C语言中的运算符大致类似,以下为一些特殊情况
1.运算符
-
逻辑运算符的短路:因逻辑运算符的特点决定
// && 的短路:当第一个操作数值为false时,不再去运算第二个操作数 int x = 0, y = 0; if(x!= 0 && (1 / x > (x + y)){ System.out.println("if分支"); }else { System.out.println("else分支"); } // || 的短路:第一个操作数是true时,不运算第二个操作数 boolean bo1 = x != 0 || x ++ > y; System.out.println(x); System.out.println("bo1");
-
‘+’、‘-’ 可为正负号
int x = 0, y = 10; int add = x + -y; System.out.println(add); // -10;
-
两种右移
/* * >>有符号右移:高位要补符号位 * >>>无符号右移:高位不补符号位 */ int i = -1; System.out.println(i >> 1); System.out.println(i >>> 1);
2.表达式
- 概念:符合一定语法规则的运算符和操作数的序列
- 类型与值:
- 类型:表达式的数据类型
- 值:操作进行运算得到的结果
3.类型转换
-
数据类型按容量大小排序(隐式)
byte→ short→ (char)→ int→long→float→ double。
byte,short, char之间不会相互转换,他们三者在计算时首先转换为 int 类型。
-
逆顺序的需要借助强制类型转换
三种类型
顺序流程
顺序流程是按照语句顺序依次执行一系列语句(或语句块)。顺序流程是最基本的控制流程。
分支流程
1. if…else分支
-
基本语法:
if ( 条件表达式 ) { //条件为真时执行 语句块1 } else { //条件为假时执行 语句块2 }
if(c == '+') System.out.println(a + b); else if(c == '-') System.out.println(a - b); else if(c == '*') System.out.println(a * b); else System.out.println(a / b);
2. switch–case分支
-
基本语法
基本语法: switch ( 表达式 ) { case constant1: 语句; break; case constant2: 语句; break; default: 语句; break; }
-
switch 后允许的表达式类型:String/char/byte/short/byte或枚举类型
Scanner sc = new Scanner(System.in); System.out.printf("输入成绩的等级"); String grade = sc.nextLine(); switch(grade){ case "A": System.out.println("你的成绩在90-100之间"); case "B": System.out.println("你的成绩在80-90之间"); }
循环流程
循环语句是根据条件,要求程序反复执行某些操作。
1. for 循环
-
当循环变量在指定范围内变化时,重复执行循环体,直到循环变量超出了指定的范围时退出。
-
基本语法
for( 初始化表达式; 终止条件表达式; 更新表达式 ) { 循环体 }
-
注意:初始化表达式中的变量必须声明并赋值。终止条件表达式的值必须为布尔值。
for(int i = 15; i >= 10; i --) { for(int k = 0; k < 15 - i; k ++){ System.out.print(" "); } for(int j = 10; j <= i; j ++){ System.out.printf("%d*%d=%d ", i, j, i * j); } System.out.println(); }
2. while循环
-
当条件满足时进入,重复执行循环体,直到条件不满足时退出。
-
基本语法
while( 循环条件表达式 ) { 循环体 }
while(n != 0){ System.out.println(n); n --; }
3. do…while循环
-
无条件进入,执行一次循环体后判断是否满足条件,当条件满足时重复执行循环体,直到条件不满足时退出
-
基本语法:
do { 循环体 } while ( 循环条件表达式 );
do { s += n * ( n + 1 ) ; n = n + 1 ; } while ( s < totalNum ) ;
4.加强 for 循环
-
Java提供了一个更为简洁的循环语句,用于数组或者集合的遍历。
-
基本语法
for ( 类型 变量名: 数组或集合 ) { 循环体 }
int[] nums = {10, 20, 30, 40, 50}; for(int i : nums){ System.out.println(i); }