这种表达方式如何工作

时间:2015-06-12 12:01:08

标签: java

有人能告诉我下面的代码段会如何执行吗?

代码: -

echo %date% %time%

6 个答案:

答案 0 :(得分:5)

相同
int a = 3;
int b = 4;
if(a > b) {
  a = a;
} else { 
  a = b;
}
System.out.print(a);

另见 What is the Java ?: operator called and what does it do?

答案 1 :(得分:3)

这是一个ternary operator(注意:不是特别针对Java而是广泛使用并以多种语言实现),并根据初始条件的结果返回第二个或第三个参数。

result = condition ? result if true : result if false

因此它是

的简写
if (condition) {
   return a;
}
else {
   return b;
}

答案 2 :(得分:3)

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

if (a > b) {
  max = a;
}
else {
  max = b;
}

基于单个条件将单个变量设置为两个状态之一是if-else的常见用法,即为其设置了一个快捷方式,条件运算符,?:。使用条件运算符,您可以在一行中重写上面的示例,如下所示:

max =(a> b)? a:b;

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

答案 3 :(得分:1)

第1行:定义了a和b。

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

第3行:a打印到当前标准输出。

答案 4 :(得分:1)

如果'a'大于'b',你会得到a = a,否则如果'b'大于'a'你会得到a = b。

答案 5 :(得分:1)

与以下内容相同:

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);

?是三元运算符,它将前面的代码视为条件,并在:为真之前评估代码,如果:为假则为isnumeric()之后的代码