[英]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.