首页 上一页 1 2 下一页 尾页

求助: for (i=1;i<100;i++); 点击:1585 | 回复:21



李yi

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-09-10 14:36:00
楼主
 for (i=1;i<100;i++);这条语句是怎样执行的,我看了半天的书也没明白,请各位赐教



李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-09-10 16:00:00
1楼
#include<reg51.h>
     int i,j;    
//----------------------------------//
     void main()
     {
     
     for (i=0;i>10;i++);
     {
     P1=j++;      //应该这里会执行10次,可问题不会
     P2=i;    
     }
         
     P2=0x00;     
     }

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2007-09-10 16:12:00
2楼
不懂您的编程语言,但是如果是c语言编程的话,那么您写的这句:
for (i=0;i>10;i++);
实质上走了十次空循环。由于您程序后重新给P2赋值,因此可能看不出程序在运行。

想起时正是忘记

  • 精华:0帖
  • 求助:0帖
  • 帖子:42帖 | 1651回
  • 年度积分:0
  • 历史总积分:1960
  • 注册:2007年1月26日
发表于:2007-09-10 16:18:00
3楼
 for (i=0;i>10;i++);
     {
     P1=j++;      //应该这里会执行10次,可问题不会
-------------------------

嘿嘿,大于小于号可要看清啊

李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-09-10 16:22:00
4楼
这是C语言的,程序应该执行for (i=0;i>10;i++);下面的大括号里面的程序10次吧,可是我用仿真软件单部执行并没有10次,而是一次

想起时正是忘记

  • 精华:0帖
  • 求助:0帖
  • 帖子:42帖 | 1651回
  • 年度积分:0
  • 历史总积分:1960
  • 注册:2007年1月26日
发表于:2007-09-10 16:24:00
5楼
换成小于号就OK了

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2007-09-10 16:24:00
6楼
 您应该将语句改为:
for (i=0;i>10;i++){
     
     P1=j++;      
     P2=i;    
     }

李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-09-10 16:26:00
7楼
换成小于号编译过不了

李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-09-10 16:32:00
8楼
谢谢yuanle问题解决了,可是我搞不懂书上确实是那样写的

李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-09-10 16:38:00
9楼
还有一个问题想请教,for (i=0;i>10;i++){ 这里的程序每执行一次i就会加1吗?}

工控学徒

  • 精华:5帖
  • 求助:0帖
  • 帖子:218帖 | 1663回
  • 年度积分:0
  • 历史总积分:9769
  • 注册:2002年12月13日
发表于:2007-09-10 16:40:00
10楼
问题是怎样解决的?问题出在哪儿?让大家也学一下。

李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-09-10 16:43:00
11楼
就是yuanle兄的 :      您应该将语句改为:
                     for (i=0;i>10;i++){
     
                      P1=j++;      
                     P2=i;    
                     }

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2007-09-10 16:57:00
12楼
这是一个很简单的错误,楼主在for 语句的同一行使用了分号作为结束符,这样for语句就成了循环执行空语句了,楼主说执行一次那是因为for语句结束后执行了后面的语句造成的,这是楼主对于c语言中语法不熟悉造成的。

想起时正是忘记

  • 精华:0帖
  • 求助:0帖
  • 帖子:42帖 | 1651回
  • 年度积分:0
  • 历史总积分:1960
  • 注册:2007年1月26日
发表于:2007-09-10 17:02:00
13楼
嘿,俺搞错了。不好意思,兄弟

李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-09-10 17:03:00
14楼
谢谢赐教,在下刚学,很多问题其实确实很幼稚,今后还有很多问题还要请教

透明了

  • 精华:0帖
  • 求助:0帖
  • 帖子:60帖 | 325回
  • 年度积分:0
  • 历史总积分:521
  • 注册:2005年3月29日
发表于:2007-09-10 17:10:00
15楼
很简单的问题,如果不像 yuanle那样改,你的循环没意义

李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-09-11 10:59:00
16楼
对,我多加了分号

小东瓜

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 74回
  • 年度积分:0
  • 历史总积分:128
  • 注册:2004年10月16日
发表于:2007-09-12 22:02:00
17楼
for ( <初始化>;<条件表达式>;<增量>)
  语句;
   
//初始化是一个赋值语句,它用来给循环控制变量赋初始值;
//条件表达式是一个关系表达式,它决定什么时候退出循环;
//增量定义循环控制变量每循环一次后按什么方式变化;

小东瓜

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 74回
  • 年度积分:0
  • 历史总积分:128
  • 注册:2004年10月16日
发表于:2007-09-12 22:13:00
18楼
 #include<reg51.h>
   int i,j;    
    void main()
     {
     
     for (i=0;i<10;i++)
     {
     P1=j++;    
     P2=i;    
     }
         
     P2=0x00;     
     }
//i要小于10,当i大于10后退出循环。执行P2=0x00.  for语句是先执行后判断的,所以执行一次后就完了。

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2007-09-13 12:16:00
19楼
可以在编译中设置‘列表’,然后看汇编。

李yi

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 122回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年8月31日
发表于:2007-09-16 21:19:00
20楼
谢谢周公指点

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页