「java条件表达式」java表达式和语句
本篇文章给大家谈谈java条件表达式,以及java表达式和语句对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
条件表达式 JAVA
JAVA条件表达式,有几点注意一下就可以。。
1、如果冒号两边,是同一种类型,那么该条件表达式的值也是同一种类型。。
2、如果其中一边的类型是byte、short或者char(暂且统称为X类型),而且另外一边是int常量(注意是常量),而且这个常量可以用X类型表示(也就是不溢出),那么,结果就是X类型。。
比如:
System.out.println(
true
?
98
:
'a');
输出:
b
3、如果不符合上述情况的,则自动隐式转换,即小范围的转换成大范围的,低精度的转换成高精度的类型,最后的结果就是转换后的类型。。
比如:
System.out.println(
false
?
1.0
:
'a');
输出:
97
//这里其实应该是97.0,double类型。。
本人亲自检验了下,确实应该是97.0
就是这样吧。。
java表达式是什么?
Java是面向表达式的语言,Java中一个简单表达式可以是下面任意一种:● 常量:7、false。● 单引号括起来的字符字面常量:'A'、'3'。● 双引号括起来的字符串字面常量:"foo"、"Java"。● 任何正确声明的变量名:myString、x。● 任何用Java二元运算符(本章稍后将详细讨论)连接起来的两个上述类型的表达式:x+2。● 任何用Java一元运算符(本章稍后将详细讨论)修饰的单个上述类型的表达式:i++。● 任何用小括号括起来的上述类型的表达式:(x+2)。以及另外一些与本书后面将要学到的对象有关的表达式类型。无论多么复杂的表达式都可以由不同类型的简单表达式和括号嵌套组合而成,例如:((((4/x) + y) * 7) + z)。2.9.1 算术运算符 Java语言提供了许多基本的算术运算符,如表2-1所示。表2-1 Java算术运算符运算符描 述+加法-减法*乘法/除法%求余(%左边的操作数除以右边的
操作数所得到的余数,例如10%3=1)+和-运算符也可作为一元运算符用于表示正负数:-3.7、+42。除了简单赋值运算符=,还有许多特定的复合赋值运算符,这些运算符将变量赋值和算术操作合并在一起,如表2-2所示。表2-2 Java复合赋值运算符运算符描 述+=a+=b等价于a=a+b-=a-=b等价于a=a-b*=a*=b等价于a=a*b/=a/=b等价于a=a/b%=a%=b等价于a=a%b最后要介绍的两个算术运算符是一元递增运算符(++)和一元递减运算符(--),用于将整数变量的值加1或减1,或者将浮点数变量的值加1.0或减1.0。称它们为一元运算符是因为它们用于单个变量,而前面讨论的二元运算符则连接两个表达式的值。一元递增运算符和一元递减运算符也可用于将字符变量在Unicode序列中向前或向后移动一个字符位置。例如,在下面的代码片段中,字符变量c的值从'e'递增为'f':递增和递减运算符可以以前缀或者后缀方式使用。如果运算符放在操作数之前(前缀模式),变量的递增或递减操作将在更新后的变量值被用于任何由它构成的赋值操作之前执行。例如,考虑下面的使用前缀递增运算符的代码片段,假设a和b在程序前面已经声明为int变量:上述代码执行后,变量a的值是2,变量b的值也是2。这是因为在第二行中变量a的递增(从1到2)发生在它的值赋给b之前。因此这行代码在逻辑上等价于下面两行代码: 另一方面,如果运算符放在操作数之后(后缀模式),递增或递减操作发生在原来的变量值被用于任何由它构成的赋值操作之后。看一下以后缀方式使用递增运算符的相同代码片段:上述代码执行后,变量b的值是1,而变量a的值是2。这是因为在第二行中变量a的递增(从1到2)发生在它的值赋给b之后。因此这行代码在逻辑上等价于下面两行代码:下面是一个稍微复杂一点例子,请阅读附加的注释以确保你能够明白x最终是如何被赋值为10的:稍后将会看到,递增和递减运算符通常和循环一起使用。2.9.2 关系和逻辑运算符逻辑表达式以指定的方式比较两个(简单或者复杂)表达式exp1和exp2,决议出一个boolean值true或者false。 Java提供了表2-3所示的关系运算符来创建逻辑表达式。表2-3 Java关系运算符运算符描 述exp1==exp2如果exp1等于exp2,值为true(注意使用双等号测试相等性)exp1exp2如果exp1大于exp2,值为trueexp1=exp2如果exp1大于等于exp2,值为trueexp1exp2如果exp1小于exp2,值为trueexp1=exp2如果exp1小于等于exp2,值为trueexp1!=exp2如果exp1不等于exp2,值为true!exp如果exp为false值为true,如果exp为true值为false除了关系运算符,Java还提供了用于组合/修饰逻辑表达式的逻辑运算符。表2-4列出了最常用的逻辑运算符。表2-4 Java逻辑运算符运算符描 述exp1exp2逻辑“与”,仅当exp1和exp2都为true时复合表达式值为trueexp1||exp2逻辑“或”,exp1或exp2值为true时复合表达式值为true!exp逻辑“非”,将逻辑表达式的值从true切换到false,反之亦然下面这个例子用逻辑“与”运算符来编程实现逻辑表达式“如果x大于2.0且y不等于4.0”:逻辑表达式常用于流程控制结构,本章稍后将进行讨论。2.9.3 表达式求值和运算符优先级如同本章前面提到的那样,任何复杂的表达式都可以用分层嵌套的小括号构成,例如(((8 * (y + z)) + y) x)。编译器通常按照从内到外,从左到右的顺序对这样的表达式求值。假设x、y、z按照下面的方式声明并初始化:下面的赋值语句右边的表达式:将像下面这样逐步求值:没有小括号时,根据运算符用于表达式求值的顺序,某些运算符具有高于其他运算符的优先级。例如,乘除法先于加减法执行。通过使用小括号可以强制改变运算符的优先级,括号内的运算符比括号外的先执行。考虑下面的代码片段:代码的第一行没有使用括号,乘法操作比加法操作先执行,因此整个表达式的值为2+12=14,就像我们将表达式明确地写成2+(3*4)一样,当然这样做没有必要。 在代码的第二行,括号被明确地放在操作2+3两边,因此加法操作将首先执行,然后求和结果乘以4作为整个表达式的值,即5*4=20。回到前面的例子注意到和!=运算符优先级高于运算符,因此可以去掉嵌套的括号而变成下面这样:然而,额外的括号并不会对代码造成伤害,事实上它可以使表达式的目的更加清楚。2.9.4 表达式类型表达式类型是表达式最终求值结果的Java类型。例如给定下面的代码片段:表达式(x 2.0) (y != 4.0)求值结果为true,因此表达式(x 2.0) (y != 4.0)称为boolean型表达式。在下面的代码片段中:表达式((8 * (y + z)) + y) * x求值结果为42,因此表达式((8 * (y + z)) + y) * x称为整型表达式。
JAVA条件表达式
int c=(ab)?a:b;
在JAVA或者C语言以及其他汇编遗言中的含义是这样的
定义 C,如果ab则C=a 否则C=b
int a=10;
int b=1;
int c=(ab)?a:b;
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
我们顺着程序读,定义a=10 定义b=1 定义c 如果ab则c=a
否则c=b 输出a 输出 b 输出c
因为a ,b只参与运算没改变值所以a=10 b=1
因为ab为假,所以c=b b=1 c=1
希望你能看明白,我也刚刚学java ,以后大家互相学习加油奥!
java中的条件运算符是什么?
这个需要你对编程的三元表达式有一定的基础。首先三元表达式并不只是针对java在其他语言中如JavaScript和Oracle以及其它语言中都可以使用。
第一点:三元表达式顾名思义就是三个表达式,第一个是判断条件结果只要是Boolean类型就可以,第二个是值或者表达式,第三个也一样,如果表达式一是true则执行值二,如果为false则为值三
public static void main(String[] args) {
boolean x = true;
boolean y = true;
System.out.println(x ? y ? 1 : 2 : 3);
}
添加上括号
public static void main(String[] args) {
boolean x = true;
boolean y = true;
System.out.println(x ? (y ? 1 : 2 ): 3);
}
拆分两步更容易理解:
关于java条件表达式和java表达式和语句的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。