当前位置: 首页 > 知识库问答 >
问题:

java有人能解释这种逻辑吗

程智明
2023-03-14
   public class Second {

   public static void main(String[] args) {


    System.out.println(1>2?22:43);
    int a,b;
    a=11;
    b=(a==116)?22:33;
    System.out.println(b);

}

}

我是 java 初学者,我很难理解这段代码,它确实打印了 22 个,但我没有得到它背后的逻辑,如果我必须更多地了解它们,这些叫什么。

有没有类似的逻辑,我应该留意,任何建议都会有所帮助。非常感谢。

共有2个答案

夏华藏
2023-03-14

该代码使用三元运算符,根据布尔表达式为变量赋值。三元运算符是Java if-else语句的简单内联形式。下面是三元运算符的结构。

<boolean expression> ? <value if true> : <value if false>

现在,让我们看看您的代码:

System.out.println(1>2 ? 22 : 43);

该行将打印出 43,因为布尔表达式 1

然后,看看这部分:

int a,b;
a = 11;
b = (a==116) ? 22 : 33;
System.out.println(b);

该代码将打印出33,因为布尔表达式11==116为假。

所以,这段代码的最终输出不是22。以下是最终输出:

43
33
狄法
2023-03-14

这<代码>1

if (1>2) then return 22 else return 43
 类似资料:
  • 我试图拼凑这个例子中的逻辑。这是正常的代码。仅供参考,我有一个大学导师帮我做这个例子,但他仍在试图找出如何向我解释它。代码也做好了,这个只是为了自己的递归知识。 这是带有标记的测试代码,我用它来找出什么时候发生了什么。这有点碍眼,所以如果你认为不用看这一团糟就可以解释的话,那一定要。 直到第一颗星星印出来我才明白。在printTriangle方法将其减至0后,我打印了n的值,然后在打印第一颗星之前

  • 我是Hibernate和JPA的新手,我对这个注释有问题。有人能简单地解释一下这个注释到底在做什么吗?因为在这种情况下,文档对我来说很难理解。 编辑我明白什么是持久上下文,但在代码中,我有这样的例子: 我对@PerustenceContext做什么有问题。抱歉,也许我没有具体说明。

  • 我这里有一些关于Java的练习问题。我们应该在不使用编译器的情况下确定答案。 参考以下方法: 调用product(6)时的输出是什么? D)48 E)70 根据答案,正确的输出是48。我真的不明白为什么这是真的。6不符合基本情况,所以转到else语句。那么,乘积(6-2)=乘积(4),乘积(2)得到乘积(0),乘积(2)得到乘积(0),得到6*4,4*2,2*0,0*0。但那是32,不是48?是不

  • 有人能解释一下为什么操作符优先级适用于像JavaScript中的和这样的逻辑操作符吗?这在一个操作中意味着什么: 首先计算,因为在JavaScript中,运算符的优先级高于运算符。根据我如何知道不会被JavaScript引擎计算,因为在运算符之前有一个文字,而当某个东西在运算符之前是时,运算符之后的东西不会被计算这在JavaScript中称为“逻辑运算符短路”另一个示例是: 真警报() 即使函数调

  • 问题内容: 我只是在android上开始,而我的java很生锈。我不记得曾经见过像这样嵌套在另一个函数中的函数。有人可以向我确切解释final的作用,并解释为什么您要在另一个函数中嵌套这样的功能吗? 问题答案: 这是一个匿名类。实际发生的情况是正在使用重写的函数创建 的子类。 关于匿名类的最优雅的事情之一是,它们使您可以在需要的地方准确定义单发类。此外,匿名类具有简洁的语法,可减少代码中的混乱情况

  • 此方法的任务是从数组中移除要移除的值。剩下的元素应该只向数组的开头移动。(数组的大小不会改变。)由于数组现在少了一个元素,最后一个元素的位置应该用0填充。如果数组中有多个toRemove的匹配项,则只应移除第一个匹配项。方法没有返回值,如果数组没有元素,它应该只是没有效果。 解决方案: 我不明白这个算法是如何工作的。boolean的使用让我感到困惑,我觉得我不完全理解原始数据类型是做什么的,我知道