2个回答
展开全部
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);
问题:一道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);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询