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

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com