C++ 在For循环中包含{}和不包含{}的If语句
我有一个向量中的队列循环,我需要在队列循环中搜索,以找到最小索引队列和最大大小队列 我正在使用以下代码C++ 在For循环中包含{}和不包含{}的If语句,c++,loops,if-statement,for-loop,C++,Loops,If Statement,For Loop,我有一个向量中的队列循环,我需要在队列循环中搜索,以找到最小索引队列和最大大小队列 我正在使用以下代码 int min_index = 0; int max_size = -1; std::size_t size = q.size(); for( i=0; i<size; i++){ //accessing loop of queues if(q[min_index].size() > q[i].size()) min_index = i; // Now q[
int min_index = 0;
int max_size = -1;
std::size_t size = q.size();
for( i=0; i<size; i++){ //accessing loop of queues
if(q[min_index].size() > q[i].size())
min_index = i; // Now q[min_index] is min_index is the minimum size queue
if(q[i].size() > max_size)
max_size = q[i].size(); // maximum size queue
}
哪一个是正确的,有无
{}
的区别是什么。对不起,如果这是一个愚蠢的问题。我是编程新手。在您的情况下,这两种代码之间没有差异
if(SOMETHING)
DO_SOMETHING;
与相同吗
if(SOMETHING) {
DO_SOMETHING;
}
但是
与不同吗
if(SOMETHING) {
DO_SOMETHING_1;
DO_SOMETHING_2; //DO_SOMETHING_2 will be performed only if the `if` condition
} //is satisfied, since it is inside the curly parentheses
在您的例子中,由于
if
块只包含一条语句,因此不需要使用大括号(尽管,如果它使您感到困惑,建议使用它们来澄清问题)…在您的例子中,这两条代码之间没有区别
if(SOMETHING)
DO_SOMETHING;
与相同吗
if(SOMETHING) {
DO_SOMETHING;
}
但是
与不同吗
if(SOMETHING) {
DO_SOMETHING_1;
DO_SOMETHING_2; //DO_SOMETHING_2 will be performed only if the `if` condition
} //is satisfied, since it is inside the curly parentheses
在您的情况下,由于
if
块只包含一条语句,因此不需要使用圆括号(尽管,如果您感到困惑,建议使用圆括号来澄清问题)…通常,应用的最佳规则是:
如果有任何疑问,请使用{}
()
但在您的情况下,两者是等效的。通常,最好的规则是: 如果有任何疑问,请使用{}
()
然而,在您的例子中,两者是等效的。它们将运行相同的代码,但是如果您需要返回,并且在if语句后有多行代码,您不必添加{},则有些人更喜欢这样使用{}。它们将运行相同的代码,但有些人更喜欢使用{}这样,如果需要返回if语句,并且在if语句之后有多行代码,则不必添加{}。以这种方式使用的括号称为块语句,用于封装一个或多个语句。一个这样的块等于一条语句,它满足了解析器的要求,解析器期望一条语句作为
if
语句的主体
所以不,这两者之间真的没有区别。一种是一条语句,另一种是另一种语句,恰好包含其他语句。以这种方式使用的括号称为块语句,用于封装一条或多条语句。一个这样的块等于一条语句,它满足了解析器的要求,解析器期望一条语句作为
if
语句的主体
所以不,这两者之间真的没有区别。一种是一条语句,另一种是另一条语句,恰好包含其他语句。没有区别:
在这种情况下,仅min_index=i如果您的if(q[min\u index].size()>q[i].size())
为true,则将调用代码>行。无差异:
在这种情况下,仅min_index=i如果您的if(q[min\u index].size()>q[i].size())
为true,则将调用code>line。没有“if循环”这样的东西。如果一个块中只有一条语句,{}
是可选的,这是风格的问题。很抱歉,我把它改成了“If语句”,而不是“If循环”。如果一个块中只有一个语句,{}
是可选的,这是一个风格问题。很抱歉,我将它改为“If statement”,最初省略了{}并不意味着以后不能添加它们。我知道,我只是不喜欢返回并添加它们,然后添加新的代码行。。。就我个人而言,我可以告诉你什么时候我需要一行以上的if语句,但如果你不能,我建议他只添加它们,这样他就不必回头再添加它们了。这个问题纯粹是基于偏好的。最初省略{}并不意味着以后不能添加它们。我知道,我只是不喜欢返回并添加它们,然后添加新的代码行。。。就我个人而言,我可以告诉你什么时候我需要一行以上的if语句,但如果你不能,我建议他只添加它们,这样他就不必回头再添加它们了。不过,这个问题纯粹是基于偏好。
if(q[min_index].size() > q[i].size())
min_index = i;
++i;