java中?是什么意思

java中?是什么意思... java中?是什么意思 展开
 我来答
bluedn
2010-12-11 · TA获得超过744个赞
知道小有建树答主
回答量:565
采纳率:0%
帮助的人:719万
展开全部
  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);
帐号已注销
2010-12-11 · TA获得超过493个赞
知道答主
回答量:136
采纳率:0%
帮助的人:78万
展开全部
? 和:相当于if和else
例 (a%2==0)?a是偶数:a是奇数
if(a%2==0)
{
System.out.print("a是偶数");
}
else
{
System.out.print("a是奇数");
}

参考资料: sername

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式