常见问题5-3 for语句书写错误

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常见问题5-3 for 语句书写错误

1.表达式之间的分隔符书写错误

【示例1】程序段

#define N 5

int i,s=0;

for

{

s=s+i;

} printf("%d",s); 对于这样的问题,编译时系统将指出语法错误,即将在Output 输出窗口给出类似如下的错误信息:

error C2143: syntax error : missing ';' before ')'

该信息的意思是:错误C2143:语法错误:在')'之前缺少';'。

解决方法:双击Output 输出窗口的提示信息,在指出有错误的行,找到出现错误的位置将错误改正,即将表达式间的逗号改为分号。

2.在for(表达式1;表达式2;表达式3)后多加了分号

【示例2】程序段

#define N 5

int i,s=0;

for (i=1;i<=N;i++);

{

s=s+i;

} printf("%d",s); 对于这样的问题,编译时系统不会给出语法错误和警告,编译能顺利通过,但执行后发现输出结果为6,不正确。

结果不正确原因是:系统将“;”作为了循环体,而将“真正的循环体”作为了一个复合语句。在执行时,由于循环体只有一条空语句,执行完便做i++的操作,直到i 的值为6时,i<=N 不成立了才退出循环,然后执行s=s+i 的操作,所以,输出结果为6。

在书写程序代码时,应避免类似逻辑错误的发生。

相关文档
最新文档