java中?是什么意思
发布网友
发布时间:2022-02-28 23:14
我来回答
共2个回答
热心网友
时间:2022-03-01 00:43
java符号"?"和":"分别是什么意思?
问题:一道java算数题目代码问题?
public static void main(String[] arg)
{
int a =5; System.out.println(a%2==1)?(a+1)/2:a/2);
}
这行命令是什么意思呢?符号"?"和":"又分别代表什么呢?
解答:
(a%2==1)?(a+1)/2:a/2
编译运行的过程是这样的。先运行?前面的a%2==1 然后在去返回 ?后面的数据。
?前面的算法 必须是要Boolean类型的。就像a%2==1这个,他返回的就是Boolean类型的 他的意思是a%2 求余等于1的时候。为true。 问号前面一定是Boolean类型的 不是TRUE 就是false;
那么?问号后面的呢?
问好后面分为2个部分 “:”前面 和“:”后面。
当?前面的Boolean的a%2==1为true的话。那么 我们就说(a%2==1)?(a+1)/2:a/2的结果等于(a+1)/2 也就是“:”前面的。
如果前面的a%2==1为false。那么我们就说(a%2==1)?(a+1)/2:a/2的结果等于a/2 也就是返回“:”后面的。
int i =(a%2==1)?(a+1)/2:a/2;
System.out.print(i);
这样可能你好理解一点。你试着跟着我的思路走一遍。。。看懂了
再看下面的
========================等价于=================================
三目运算 其实就是一个判断的算法 。。。
他就等价于以下代码。
if(a%2==1)
{
int i = (a+1)/2;
System.out.println(i);
}
if(!a%2==1)
{
int i = (a)/2;
System.out.println(i);
}
当a%2==1等于TRUE的时候,。就执行
int i = (a+1)/2;
System.out.println(i);
当a%2==1等于false的时候,。就执行
int i = (a)/2;
System.out.println(i);
热心网友
时间:2022-03-01 02:01
? 和:相当于if和else
例 (a%2==0)?a是偶数:a是奇数
if(a%2==0)
{
System.out.print("a是偶数");
}
else
{
System.out.print("a是奇数");
}
参考资料:sername