c++中的语句

What is considered a statement in C++?

本文关键字:语句 c++      更新时间:2023-10-16

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

谢谢

对于语句的精确定义:

定义:语句是执行某项操作的代码块。赋值语句将一个值赋给一个变量。for语句执行循环。在C语言中,c++和c#语句可以使用大括号

组合成一个语句。

{语句1;statement2;}

至于计算语句,我同意其他人的看法,没有多大意义。然而,计算代码行数(LOC)实际上有一些价值,并且有很多研究试图将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以及表达式(以;分隔)

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

更多信息请参见Statement (Computer Science) at Wikipedia。