2016-03-04 95 views
-1

这段代码片断是做什么的?这段代码片断做什么(三元运算符)?

((n % 10 != 0) ? " " : "")

+0

是因为在这两种情况下,ü供应了空白是N模10返回o或not.However不同的是“”和“”都是空白的,但不同的在空格方面 –

+2

“”和“”之间有区别。请让你的基础知识正确。 – Prashant

回答

0

如果你的号码除以10的余数不为零;

然后,“”(空间)

否则, “”(空字符串)

我敢肯定有什么地方丢失了。

+0

我会发表评论,但我不能评论其他人的东西 什么我不知道 - 也没有回答 - 是怎么回事。换句话说,空间或空串是怎么做的 –

0

它如果n是一个不10.

int n = 21; 
String result = ((n % 10 != 0) ? " " : ""); 
System.out.println("---" + result + "---"); 

打印公分母返回一个空间:

--- --- 
0

ternaryCheck.java

public class ternaryCheck { 

public static void main(String[] args) { 
     String a; 
     int n = 10; //if n = 10 Outputs My nameis ---- (With no space) 
     //int n = 11; //if n = 11 Outputs My name is ---- (See the difference because there is a space in the middle) 
     a = ((n % 10 != 0) ? " " : ""); //" " --> means a space & "" --> means no space 
     System.out.println("My name"+a+"is --"); 
    } 
} 
0
((n % 10 != 0) ? " " : "") 

只是

if (n % 10 != 0) { 
    answer = " "; 
} else { 
    answer = ""; 
} 

的一个与空间" "如果条件为真时执行。否则执行"";

0

这叫做三元运算符

为什么叫做“三元”?您可能知道,二元运算符是一个在两个操作数上运行的操作符。所以一个三元操作符在3个操作数上运行。

它是做什么的?三元运算符只是编写if语句的一种奇特方式。举例来说,你有这样的一段代码

String myString = ((n % 10 != 0) ? " " : ""); 

这是一样的书写

String myString; 
if (n % 10 != 0) { 
    myString = " "; 
} else { 
    myString = ""; 
} 

所以,如果你翻译的代码成英文,

如果n不是整除10,将myString的值设置为空格字符。如果n可以被10整除,请将myString的值设置为空字符串。

优点:

  • 简化代码
  • 更优雅
  • 简洁

缺点:

  • 很难理解有时
  • 很难维持的,如果你嵌套它们五言的