Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这类表达式的工作原理_Java - Fatal编程技术网

Java 这类表达式的工作原理

Java 这类表达式的工作原理,java,Java,谁能告诉我下面的代码片段将如何执行 代码:- INTA=3,b=4; a=a>b?a:b; System.out.printa; 第1行:定义了a和b 第2行:a设置为b的值,因为3不大于4 第3行:a被打印到当前std out。如果“a”大于“b”,则得到a=a,否则如果“b”大于“a”,则得到a=b。这是一个注意事项:对Java来说不是特别的,但它在许多语言中都很普遍并得到了实现,并根据初始条件的结果返回第二个或第三个参数 result = condition ? result if tru

谁能告诉我下面的代码片段将如何执行

代码:-

INTA=3,b=4; a=a>b?a:b; System.out.printa;
第1行:定义了a和b

第2行:a设置为b的值,因为3不大于4


第3行:a被打印到当前std out。

如果“a”大于“b”,则得到a=a,否则如果“b”大于“a”,则得到a=b。

这是一个注意事项:对Java来说不是特别的,但它在许多语言中都很普遍并得到了实现,并根据初始条件的结果返回第二个或第三个参数

result = condition ? result if true : result if false
因此,它是

if (condition) {
   return a;
}
else {
   return b;
}
这和

int a = 3;
int b = 4;
if(a > b) {
  a = a;
} else { 
  a = b;
}
System.out.print(a);
也看到

与以下内容相同:

int a = 3, b = 4;
if(a > b){
  a = a;
}else{
  a = b;
}
System.out.print(a);
这可以改写为:

int a = 3, b = 4;
if(a <= b){
  a = b;
}
System.out.print(a);

那个?是三元运算符,它将代码before视为条件,并计算:is it is true之前的代码,以及:if is is false之后的代码。

变量的值通常取决于特定布尔表达式是否为true,而不取决于其他任何内容。例如,一个常见的操作是将变量的值设置为两个数量的最大值。在Java中,您可以编写

if (a > b) {
  max = a;
}
else {
  max = b;
}
基于单个条件将单个变量设置为两种状态之一是if-else的常见用法,因为已经为其设计了快捷方式,条件运算符,?::。使用条件运算符,您可以在一行中重写上述示例,如下所示:

max=a>b?a:b


a>b?a:b;返回两个值(a或b)之一的表达式。测试条件a>b。如果为true,则返回第一个值a。如果为false,则返回第二个值b。返回的值取决于条件测试,a>b。条件可以是任何返回布尔值的表达式。

那么您不了解哪一部分?到目前为止,你的研究发现了什么?