syntax error near '}'这个是为什么呀?

#include<reg52.h>
#define uint unsigned int
sbit s=P1^0;
uint i,j;
void main()
{
while(1)
{
s=0;
for(i=1000;i>110;i--)
for(j=110;j>0;j--)
s=1;
for(i=1000;i>110;i--)
for(j=110;j>0;j--)
}
}

syntax error near '}'一般是缺少“;”, 在“for(j=110;j>0;j--)”后面加上“;”

#include<reg52.h>
#define uint unsigned int
sbit s=P1^0;
uint i,j;
void main()
{
while(1)
{
s=0;
for(i=1000;i>110;i--)
for(j=110;j>0;j--);
s=1;
for(i=1000;i>110;i--)
for(j=110;j>0;j--)
}
}

扩展资料:

for循环的其他用法

for(循环变量赋初值; 循环条件; 循环变量增量) 语句

循环变量赋初值总是一个赋值语句,它用来给循环控制变量赋初值;循环条件是一个关系表达式,它决定什么时候退出循环;循环变量增量,定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用分号(;)分开。例如:for( i=1; i<=100; i++ ) sum=sum+i;

先给i赋初值1,判断i是否小于等于100,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i>100时,结束循环。相当于:i=1;

while(i<=100){

sum=sum+i;

i++;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-19
for(i=1000;i>110;i--)
for(j=110;j>0;j--)
这个后面加分号,编译器提示你}号附近有错误。 共两处没有加s=0,s=1.本回答被提问者采纳
第2个回答  2012-11-12
s=1;
for(i=1000;i>110;i--)
for(j=110;j>0;j--)
最後面这个FOR没任何动作就接了while的},所以你把 for(j=110;j>0;j--)改成 for(j=110;j>0;j--) ;
加多个;在这个for後面吧本回答被网友采纳
第3个回答  2021-01-02

第4个回答  2018-03-15
for语句嵌套使用来延时,for语句的标准用法是 for(表达式1,表达式2,表达式3) { 语句(内部可为空)} 一般情况下我们是省略了括号后面的大括号的, 它的执行过程是求解一次表达式1,求解表达式2,若值为真 往后执行,否则结束,跳出。不再执行第三步。
单片机编程执行的语句后面都要加分号,for语句嵌套使用就要在最后一个for后面加分号,否则程序会直接执行到下一个分号,你可以想象成分号就是程序执行的止点(红绿灯),没有这个止点,它是要一直运行到下一个分号的,一个需要执行的语句一个分号。keil在编译的时候会提示哪里有错误,这是一个大概的提示,方便你寻迹查找,建议使用keil4,版本高点,在提示方面更直接一点。
for(i=1000;i>110;i--)
for(j=110;j>0;j--) ; 这里要加分号,如果多嵌套一个for,就在最后一个for语句后面加分号,不加编译会出错,不会生成hex
多看看51单片机基础,郭老师的教程讲这些很详细,其他教程是没有的。
相似回答