[英]What is considered a statement in C++?
我的教授经常问我的 class 给定程序中有多少条语句,但我无法确定他将什么定义为语句。 似乎 if/else 是一个语句,而 for 循环是一个语句,无论其中是否有其他假定语句。 是否有任何关于这件事的管理规则,或者是他对自己发明的定义?
谢谢
对于语句的精确定义:
定义:语句是做某事的代码块。 赋值语句为变量赋值。 for 语句执行循环。 在 C、C++ 和 C# 语句可以使用大括号组合为一个语句
{声明1; 声明2; }
至于计数陈述,我同意其他人的观点,没有多大意义。 不过,计算代码行数 (LOC) 实际上有一些价值,并且有很多研究试图将 LOC 的数量与开发人员的工作量联系起来。 您的讲师可能会让您计算语句并将语句视为仅是一个 LOC,但情况并非如此。
语句嵌套,即较小的语句可以连接成较大的语句,如复合语句。 出于这个原因,关于“这个程序中有多少条语句”的问题是模棱两可的。 首先必须定义计数方法。 没有它,“有多少”的问题就毫无意义。
在计算机编程中,语句可以被认为是命令式编程语言中最小的独立元素。 程序由一系列的一个或多个语句组成。 语句将具有内部组件(例如,表达式)。
这是处理以 JS 类似语言解析的语句的 function:
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
和表达式(由;
分隔)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.