Java 条件运算符与运算符优先级 |
您所在的位置:网站首页 › java条件运算 › Java 条件运算符与运算符优先级 |
条件运算符
条件运算符格式: (条件表达式)? 表达式1:表达式2 说明:条件表达式是boolean类型的结果,根据boolean的值选择表达式1或表达式 如果运算后的结果赋给新的变量,要求表达式1和表达式2为同种或兼容的类型 int i = (1 == 2 ? 100 : 200); System.out.println(i);//200 boolean mariied = false; System.out.println((mariied ? "已婚" : "未婚")); //未婚 double d1 = (1 > 2) ? 1 : 2.01; System.out.println(d1);//2.01 ; int num = 21; System.out.println(num > 0 ? true : num + " 不是正数");// true练习1、获取两个数中的较大值 //获取两个数的最大值 int m1 = 10; int m2 = 11; int m3 = 15; int max = m1 > m2 ? m1 : m2; System.out.println(m1 + " 和 " + m2 + " 中的最大值是 " + max); //求三个数中的最小是 int tempMin = m1 < m2 ? m1 : m2; int min = tempMin < m3 ? tempMin : m3; System.out.println("三个数中最小值是 " + min); //今天是周四,8 天后是周几? int week = 4; week += 8; week %= 7; System.out.println("今天周二,8天后是 " + ((week == 0) ? "日" : week));与if-else的转换关系 凡是可以使用条件运算符的地方,都可以改写为if-else结构。反之,不成立。 开发中,如果既可以使用条件运算符,又可以使用if-else,推荐使用条件运算符。因为执行效率稍高。 //if-else实现获取两个数的较大值 int i1 = 10; int i2 = 20; int max;//声明变量max,用于记录i1和i2的较大值 if(i1 > i2){ max = i1; }else{ max = i2; }运算符有不同的优先级,所谓优先级就是在表达式运算中的运算符顺序。上一行中的运算符总是优先于下一行的。 优先级 运算符说明 Java运算符 1 括号 ()、[]、{} 2 正负号 +、- 3 单元运算符 ++、--、~、! 4 乘法、除法、求余 *、/、% 5 加法、减法 +、- 6 移位运算符 、>>> 7 关系运算符 、instanceof 8 等价运算符 ==、!= 9 按位与 & 10 按位异或 ^ 11 按位或 | 12 条件与 && 13 条件或 || 14 三元运算符 ? : 15 赋值运算符 =、+=、-=、*=、/=、%= 16 位赋值运算符 &=、|=、=、>>>= 开发建议: 不要过多的依赖运算的优先级来控制表达式的执行顺序,这样可读性太差,尽量使用()来控制表达式的执行顺序。 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它分成几步来完成。例如: (num1 + num2) * 2 > num3 && num2 > num3 ? num3 : num1 + num2; |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |