C++;到Java除法运算符

C++;到Java除法运算符,java,c++,Java,C++,C++代码:if(!(数字%i)){ Java代码:if(!(数字%i==0)){ 是这样吗 正确版本: Java代码:如果((数字%i==0)){正确,是的。它们做的事情不同 在Java中,您需要进行比较,因为没有自动转换为布尔值 等效C++代码为 if (!(number % i == 0)) 或者干脆 if (number % i) 正确,是的。但是他们不会做同样的事情 在Java中,您需要进行比较,因为没有自动转换为布尔值 等效C++代码为 if (!(number % i == 0

C++代码:
if(!(数字%i)){

Java代码:
if(!(数字%i==0)){

是这样吗

正确版本:


Java代码:
如果((数字%i==0)){

正确,是的。它们做的事情不同

在Java中,您需要进行比较,因为没有自动转换为布尔值

等效C++代码为

if (!(number % i == 0))
或者干脆

if (number % i)

正确,是的。但是他们不会做同样的事情

在Java中,您需要进行比较,因为没有自动转换为布尔值

等效C++代码为

if (!(number % i == 0))
或者干脆

if (number % i)

是的,那是正确的。

Java将
boolean
视为一种
独立的数据类型
,它有两个不同的值:truefalse

C++认为整数
0
等于false,其他值等于true

然而,你在陈述中颠倒了逻辑

if (!(number % i)) { //returns true if number is divisible by i
if (!(number % i == 0)) { //returns true if number is not divisible by i

是的,那是正确的。

Java将
boolean
视为一种
独立的数据类型
,它有两个不同的值:truefalse

C++认为整数
0
等于false,其他值等于true

然而,你在陈述中颠倒了逻辑

if (!(number % i)) { //returns true if number is divisible by i
if (!(number % i == 0)) { //returns true if number is not divisible by i

问题是什么?什么是正确的?
如果(数字%i!=0)
也起作用……我的建议是你在两种语言中都使用
(数字%i==0)
。它起作用,而且它明确了意图。在正常情况下,如果(!(数字%i)),你不会从中获益。你的第一个版本是正确的。你的“正确版本”缺少
这是模运算符,而不是除法运算符。问题是什么?如果(数字%i!=0)也有效,那么什么是正确的?
如果(数字%i!=0)
在两种语言中都有效…我的建议是你使用
(数字%i==0)
。它有效,并且可以清楚地表明意图。在正常情况下,如果(!(数字%i))。您的第一个版本是正确的。您的“正确版本”丢失了
这是模运算符,不是除法运算符。