C++ 什么是C+中的语句+;?

C++ 什么是C+中的语句+;?,c++,C++,我的教授经常问我们班在一个给定的程序中有多少个语句,但我不能确定他对语句的定义。似乎if/else是一条语句,而for循环是一条语句,不管其中是否有其他假定语句。关于这件事有什么规定吗?或者他对自己发明的定义是什么 感谢语句嵌套,即较小的语句可以加入较大的语句,如复合语句。因此,关于“这个程序中有多少语句”的问题是不明确的。首先必须确定计数方法。没有它,“有多少”的问题就没有什么意义。对于一个精确的说法: 定义:语句是执行某些操作的代码块。赋值语句为变量赋值。for语句执行循环。 在C中,C++

我的教授经常问我们班在一个给定的程序中有多少个语句,但我不能确定他对语句的定义。似乎if/else是一条语句,而for循环是一条语句,不管其中是否有其他假定语句。关于这件事有什么规定吗?或者他对自己发明的定义是什么


感谢

语句嵌套,即较小的语句可以加入较大的语句,如复合语句。因此,关于“这个程序中有多少语句”的问题是不明确的。首先必须确定计数方法。没有它,“有多少”的问题就没有什么意义。

对于一个精确的说法:

定义:语句是执行某些操作的代码块。赋值语句为变量赋值。for语句执行循环。 在C中,C++和C++语句可以用括号

分组为一个语句。 { 声明1; 声明2; }

至于统计报表,我同意其他人的看法,这没什么意义。然而,计算代码行(LOC)实际上有一些价值,有很多研究试图将代码行的数量与开发人员的工作量联系起来。有可能是你的导师让你计算语句,并将语句视为一个LOC,但事实并非如此

在计算机编程中,一种语句 可以认为是最小的 命令的独立元素 编程语言。一个程序是 由一个或多个序列组成 声明。一份声明将 内部组件(例如:。, 表达式)


.

以下是处理JS语言中语句解析的函数:

static void do_statement(CsCompiler *c )
{
    int tkn;
    switch (tkn = CsToken(c)) {

    case T_IF:          do_if(c);       break;
    case T_WHILE:       do_while(c);    break;
    case T_WITH:        do_with(c);     break;
    case T_DO:          do_dowhile(c);  break;
    case T_FOR:         do_for(c);      break;
    case T_BREAK:       do_break(c);    CsSaveToken(c,CsToken(c)); break;
    case T_CONTINUE:    do_continue(c); CsSaveToken(c,CsToken(c)); break;
    case T_SWITCH:      do_switch(c);   break;
    case T_CASE:        /*do_case(c);*/    CsParseError(c,"'case' outside of switch");  break;
    case T_DEFAULT:     /*do_default(c);*/ CsParseError(c,"'default' outside of switch");  break;
    case T_RETURN:      do_return(c);   break;
    case T_DELETE:      do_delete(c);   break;
    case T_TRY:         do_try(c);      break;
    case T_THROW:       do_throw(c);    break;
    case '{':           do_block(c, 0); break;
    case ';':           ;               break;
    default:  
      {
        CsSaveToken(c,tkn);
        do_expr(c);
        break;
      }
    }
}

正如你所看到的,它包括
for
while
以及表达式(用
分隔;

我从未见过有人担心给定程序中语句的数量。是的,我知道,但我认为他不够邪恶,没有动机就从我的平均分中去掉分数。我猜他想知道学生们已经掌握了陈述的起点和终点。他的计数方法似乎是有效的(但不是唯一有效的计数方法)。他可能认为语句是LOC,这与试图将LOC计数与开发人员工作量联系起来的计数更相关。是的,这就是为什么我感到困惑的原因,哦,好吧。这不太正确,因为您可以使用块或复合语句,不是最小的独立元素。@Zach:复合语句或块语句仍然是语句。是的,这正是我想说的。如您所述,复合语句或块语句不一定是命令式编程语言中最小的独立元素。要快速设计一个示例,可以任意选取一组语句,在它们周围放上一些大括号,现在就有了一个block语句,它不是最小的独立元素,但实际上可以是一个大型的复杂元素。