簡體   English   中英

C++ 中的語句被認為是什么?

[英]What is considered a statement in C++?

我的教授經常問我的 class 給定程序中有多少條語句,但我無法確定他將什么定義為語句。 似乎 if/else 是一個語句,而 for 循環是一個語句,無論其中是否有其他假定語句。 是否有任何關於這件事的管理規則,或者是他對自己發明的定義?

謝謝

對於語句的精確定義

定義:語句是做某事的代碼塊。 賦值語句為變量賦值。 for 語句執行循環。 在 C、C++ 和 C# 語句可以使用大括號組合為一個語句

{聲明1; 聲明2; }

至於計數陳述,我同意其他人的觀點,沒有多大意義。 不過,計算代碼行數 (LOC) 實際上有一些價值,並且有很多研究試圖將 LOC 的數量與開發人員的工作量聯系起來。 您的講師可能會讓您計算語句並將語句視為僅是一個 LOC,但情況並非如此。

語句嵌套,即較小的語句可以連接成較大的語句,如復合語句。 出於這個原因,關於“這個程序中有多少條語句”的問題是模棱兩可的。 首先必須定義計數方法。 沒有它,“有多少”的問題就毫無意義。

在計算機編程中,語句可以被認為是命令式編程語言中最小的獨立元素。 程序由一系列的一個或多個語句組成。 語句將具有內部組件(例如,表達式)。

更多信息請參見 Wikipedia 上的聲明(計算機科學)

這是處理以 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;
      }
    }
}

如您所見,它包括forwhile和表達式(由;分隔)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM