2011-05-05 4 views
3

내 교수님은 보통 내 수업에 주어진 프로그램에 몇 개의 문이 있는지 물어 본다. 그러나 나는 그가 어떤 내용을 진술로 결정하는지 알 수 없다. 마치 if/else가 하나의 명령문 인 것처럼 보이고 for 루프는 그 안에 다른 가정 된 명령문이 있는지에 관계없이 하나의 명령문입니다. 이 문제에 대한 통치 규칙이 있습니까? 아니면 자신의 발명에 대한 그의 정의입니까?C++에서 명령문으로 간주되는 것은 무엇입니까?

감사

+3

(;로 구분) for, while 또한 표현 등을 포함시피 : 여기 –

+0

그래, 나도 알아,하지만 그 사람이 동기가없는 평균 점수에서 점수를 없애기에는 충분하지 않다고 생각해. – Sam

+0

나는 학생들이 진술의 시작과 끝을 파악하고 있음을 알고 싶어한다고 생각한다. 그의 카운팅 방법은 유효 할 것 같습니다 (그러나 유효한 유일한 카운트 방법은 아닙니다). –

답변

3

:

정의 : 문이 일을 수행하는 코드 블록입니다. 할당 문은 변수에 값을 할당합니다. for 문이 루프를 수행합니다. C, C++ 및 C# 문은 중괄호를 사용하여 하나의 문으로 그룹화 할 수 있습니다.

{ statement1; statement2; }

계산서를 계산하는 한, 나는 다른 사람과 동의한다, 다량 점이 없다. LOC (Lines of Code) 계산에는 실제로 가치가 있으며 개발자의 작업 부하와 LOC의 수를 관련시키는 많은 연구가 있습니다. 강사가 진술을 계산하고 진술을 하나의 LOC 이상으로 생각할 수도 있습니다. 이는 사실이 아닙니다. 성명 가 필수적 프로그래밍 언어의 가장 작은 독립 요소로 간주 할 수 있습니다 컴퓨터 프로그래밍에서

1

문 둥지, 즉 작은 문 복합 문처럼 큰 문으로 결합 될 수있다. 이런 이유 때문에 "이 프로그램에 몇 개의 진술이 있는지"에 관한 질문은 애매합니다. 먼저 계산 방법을 정의해야합니다. 그것 없이는 "얼마나 많은"것이 거의 의미가 없습니까? 문장의 정확한 definition를 들어

+0

그래, 그게 내가 혼란스러워하는 이유 야. – Sam

0

. 프로그램은 하나 이상의 문의 순서에 의해 형성된 입니다. 명세서의 내부 구성 요소는 입니다 (예 : 표현).

More at Statement (Computer Science) at Wikipedia.

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; 
     } 
    } 
} 

당신이 내가 본 적이

+0

작은 독립형 요소가 아닌 블록 또는 복합 문을 사용할 수 있기 때문에 그다지 올바르지 않습니다. – Hazok

+0

@Zach : compound 또는 block 문은 여전히 ​​문입니다. –

+0

네, 제가하려고했던 요점입니다.컴파운드 또는 블록 문은 반드시 앞서 설명한 명령형 프로그래밍 언어의 가장 작고 독립된 요소는 아닙니다. 신속하게 예제를 고안하기 위해 임의로 문장 세트를 취하고, 중괄호를 몇 개 넣고, 가장 작은 독립형 요소는 아니지만 실제로는 크고 복잡한 요소 일 수있는 block 문을 사용합니다. – Hazok

0

은 JS 모두 언어로 해석 문을 처리하는 기능입니다 누구나 주어진 프로그램의 문장의 수에 대해 걱정할 필요가있다.
관련 문제