c++中的语句
What is considered a statement in C++?
我的教授经常问我们班在一个给定的程序中有多少条语句,但是我不能确定他定义什么是语句。似乎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。
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 为什么是0;C++中的有效语句
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 是否可以使用if constexpr删除控制流语句
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 我似乎对if/else的基本语句有问题:/
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- If语句在c++中被忽略
- 比较if语句中的数组值和int值
- 以在Qt中的IF语句中设置时间延迟
- Craps游戏问题,忽略if语句
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 如何编写一个使用n倍三元条件语句的C++布尔函数
- c++:定义if语句中的模板
- 主线的等价语句是什么