我正在学习C++,我遇到了2种不同类型的代码,我想知道它们有什么不同。if()的区别?
是否有任何区别:
if(z==true)
{
cout << "Yes";
}
else
{
cout << "NO";
}
和:
if(z==true)
cout << "YES";
else
cout << "NO";
我正在学习C++,我遇到了2种不同类型的代码,我想知道它们有什么不同。if()的区别?
是否有任何区别:
if(z==true)
{
cout << "Yes";
}
else
{
cout << "NO";
}
和:
if(z==true)
cout << "YES";
else
cout << "NO";
没有,有这两个之间没有什么区别。 {}
仅在有多条语句时才需要,但有些人认为,如果稍后添加更多语句,始终拥有它们可以降低奇怪错误的风险。
所以它只是你可以写它,但是你想以这两种方式之一..再多一些:)? 并感谢你:) – ibanezz
你可以使用你想要的那些。在编程中,通常有几种方法可以做同样的事情。有时候,尽管它有效,但在某些方面做是不好的做法,因为在代码更新后,它有混淆或微妙错误的风险。 –
此代码的行为方式相同。所以这只是一个风格问题。
许多程序员更喜欢第一个,因为它更健壮。以不符合预期的方式更改第二个很容易。如果有多个语句(或没有语句),则{}
是必需的。因此,如果认为某个部分是有条件/无条件的,那么对第二个部分的更改很容易导致代码。特别是在压痕时马虎。
我个人认为如果你有一个好的IDE可以自动格式化代码,风险很小。
完全没有区别,第一个例子有一个代码块而不是单个语句,它只是一个包含单个语句的块。前者通常被认为是更安全的写作。
技术上不行,但一个是IMO更好的做法。如果您省略大括号,则只执行下一行,而不是执行大括号内的所有内容。您可以看到代码的快速更改如何引发问题。
说你有
if(z==true)
cout << "YES";
else
x = 47;
,你将它修改为
else
x = 47;
y = 99;
Y = 99;无条件执行。最好避免这些问题,并使用大括号。
当大括号中的语句不是宏时,也看到了问题:如果在稍后的某个点上它变成了多行宏,那么if语句突然表现不同(并且你失去了一天的生活调试!)。总之:总是使用大括号。 –
如果您有兴趣,还有一段代码与您呈现的代码没有区别。它是'if(z)cout <<“YES”; else cout <<“NO”;你不应该把bools与true或false比较,他们已经是bool了。 – unkulunkulu
另外,你可以(也应该)省略'== true'部分。查看关于[为了真正做出重大贡献?](http://programmers.stackexchange.com/questions/12807/make-a-big-deal-out-of-true)上的答案,了解各种原因这不好。 – delnan
你从哪些书或教师那里学习C++没有向你解释这个? –