Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在For循环中包含{}和不包含{}的If语句_C++_Loops_If Statement_For Loop - Fatal编程技术网

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=iif(q[min\u index].size()>q[i].size())
为true,则将调用代码>行。

无差异:


在这种情况下,仅
min_index=iif(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;