2014-01-14 108 views
0

注:斜塔C++背景与蟒蛇背景C++的条件语句

在最后如果看代码如下声明: 什么呢I = 1 if语句之后的意思。 看最后的其他语句。 在else语句之后,i = 0是什么意思? 为什么他们有

#include <stdio.h> // preprocessor command 
int foo(int x) // function definition 
{ 
return x+1; // return expression value 
} 

int main() // this is where all C programs start 
{ 
    int i = 0; // variable definition + init. 
    while (i < 10) 
    { // loop + condition 
     i = i+1; // expression + assignment 
     printf("%d ", foo(i)); // function calls, output 
    } 
    if (i >= 10) i = 1; // conditional code execution 
    else i = 0; 
    return i; // return result, exit function 
} 
+0

我不知道,如果你问_why_他们在那里或_how做陈述的工作?_但如果是前者,你正在做一个检查,看是否while循环完全执行,然后返回1,如果没有则返回0。返回码对错误检查等有用。 – JMercer

回答

1

在你的榜样,i=1是不包括在if语句来,不是条件代码分配的句子。如果你想这是相当于

if (i >= 10) // conditional code 
    i = 1; // will execute if i>=10 

或更多更清晰的

if (i >= 10) // conditional code 
{ 
    i = 1; // will execute if i>=10 
} 

,不建议不过,你可以写所有的代码在一行。

你应该知道不同语言的indent style的:

缩进不是大多数编程语言,它被用作辅助符号的要求。相反,程序员缩进以更好地向人类读者传达他们程序的结构。具体而言,缩进用于显示控制流构造(如条件或循环)与其内部和外部包含的代码之间的关系。但是,某些编程语言(如Python和Occam)使用缩进来确定结构,而不是使用大括号或关键字。

0

这只是一条if语句。当只有一行被执行时,你不需要大括号。

0

试着改变你的代码::

#include <stdio.h> // preprocessor command 
int foo(int x) // function definition 
    { 
    return x+1; // return expression value 
    } 

    int main() // this is where all C programs start 
     { 
     int i = 0; // variable definition + init. 
while (i < 10) 
{ // loop + condition 
    i = i+1; // expression + assignment 
    printf("%d ", foo(i)); // function calls, output 
} 
if (i >= 10) { 
     i = 1; // conditional code execution 
     }else{ 
    i = 0; 
    } 
    return i; // return result, exit function 
} 

同时使用循环,你应该非常小心牙套后,如果条件为if(i<10)如果你把括号那么只有你的控制将基于循环中移动根据循环中提到的条件。

0

他们是C/C++相当于到Python 3的

i = 1 if i >= 10 else 0 

在C++中的if/else关键字采取一种说法:

if (condition) 
    <statement> 
[else if (condition) 
    <statement>] 
[else 
    <statement>] 

语句是一个条款,以分号结束,例如a = b;或包含在{} s中的复合语句,例如

if (a == 1) 
    std::cout << "a is one\n"; 
if (a == 2) { 
    std::cout << "a is two\n"; 
    return 0; 
} 

C++很大程度上不关心空白。所以上面的相当于

if(a==1)std::cout<<"a is one\n";if(a==2){std::cout<<"a is two\n";return 0;} 

if (a 
== 1) 
{ 
    std :: cout 
    << 
    "a is " 
    "one" 
    "\n"; 
} if // horrible but legal. 
(
    a == 
      2) 
{ std :: 
    cout 
    << 
     "a is two" 
     "\n" 
      ; 
      return 
       0 
       ; 
       } 

或各种其他排列:)

0

C/C++确实需要通过使用凹口,而相比之下,蟒分离代码块。

如果if/else之后的语句是单个项目,则不需要大括号。

if(x) a(); else b(); 

等同于:

if(x){ a(); }else{b();} 

和:

if(x) 
{ 
    a(); 
} 
else 
{ 
    b(); 
} 
0

他们是C/C++等同于Python的

i = [1 if i >= 10 else 0] 

在C++中的if/else关键字采取声明:

if (condition) 
    <statement> 
[else if (condition) 
    <statement>] 
[else 
    <statement>] 

语句是一个条款,用分号,例如终止a = b;,或复合语句,包含在{} S,包含一个或多个分号封端的语句或复合语句

statement := 
    statement-text ';' | 
    '{' statement '}' 

如下:++在很大程度上不关心空白

if (a == 1) 
    std::cout << "a is one\n"; 
if (a == 2) { 
    std::cout << "a is two\n"; 
    return 0; 
} 

℃。因此,上述相当于

if(a==1)std::cout<<"a is one\n";if(a==2){std::cout<<"a is two\n";return 0;}