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