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

  • 格式:docx
  • 大小:15.31 KB
  • 文档页数:1

常见问题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。

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