今天正在学一个字符串处理函数,用到许多 for 循环,其中,我写了两个 for 语句循环如下:
for(i=0;i++;i<max) for(z=0;z++;buffer[i][j]!=':')
在这两个语句编译时,提示出错信息如下:翻译过来就是 警告:语句没有影响
warning: statement with no effect
很纳闷,语句不是对的吗,都是为什么会初小没有影响效果呢?上网搜一下,于是看到了 for 循环的原型,如下:
for (expr1; expr2; expr3) {
statement
}
其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
原来错在,这三个 expr 的顺序不能乱,初始值在前,判定在中,改变变亮语句在后,而我的循环中,就是将这些颠倒了,从 i++ 与 z++ 中,总以为是循环先使用他们的值,再在当次循环结束的时候 +1 。判断可以随便放。与 for 循环原型不符。
于是我将循环改为如下,立即解决问题
for(i=0;i<max;i++) for(z=0;buffer[i][j]!=':';z++)
记下这篇文章,是要让自己知道,for 循环的语句顺序一定不能变动,不然,即使你觉得是对的,可是写出来的程序,还是不能按照你的意思去处理。
沙发..
呵呵,感谢沙发使者,这两天没见你更新呢。
都被你抢光了》。。。
对了jiechic,你的代码插件是什么啊~~推荐下~~
看我的这篇文章就有了 WordPress编辑器加代码高亮功能
哈哈,3Q!!赶紧去改改我的~
有个开发了个 CK and SyntaxHighlighter ,但是没解决在wordpress 3.0以上的问题,在wp2.9.2上可用,不过经常会把头文件的那句话去掉。所以自己看网上的教程,改得了这个。
有点难,路过,支持下@
好像你更厉害,开英文站?
博主很用心,跟着学习了!
其实就是看到自己错了,写出来,大家一起学习。
最讨厌嵌套循环了,呵呵……
嘿嘿,这里直接详细的说一下循环条件的顺序,关于嵌套循环,其实很多时候,都是需要的。
看来你还是很善于解决问题
一点点,知道了,就写下来而已,还有很多路要走呢。
分享了
你的见解我不解
其实就是对于for里面的条件的顺序不能变化,原来我就是变化了,才出现错误的。
额- -for的格式吧,,一定要按照它的顺序的
比较习惯用for
当初就是因为没按照他的顺序,以为对的,还是出错,写出来提醒下。
什么都不懂,只是抱着学习的态度,随便看看而已~
呵呵,顺序错了,编译器救过不了了
我在linux底下编,顺序错了,确编译成功了,但是对数据不产生效果。
来围观天书,好容易晕
晕死。。。这。。很基本,,,真的。。
我喜欢
for(;;) { statement; if(**) break; }
呵呵,无条件循环,判断条件退出。这样也不错。