首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于for循环的代码,该怎么处理

2012-02-04 
关于for循环的代码我在一本书上面看到了下面这段代码,关于for循环的,我有一些不懂的地方请教大家,代码如下

关于for循环的代码
我在一本书上面看到了下面这段代码,关于for循环的,我有一些不懂的地方请教大家,代码如下:

#include <iostream>
#include <string>
int   main()
{
using   namespace   std;
string   word= "?ate ";
for(char   ch= 'a ';word!= "mate ";ch++)
{
cout < <word < <endl;
        word[0]=ch;
}
cout < < "After   loop   ends,word   is   " < <word < <endl;
return   0;
}


代码中为什么要有一句word[0]=ch这句代码了?for循环中不就告诉了程序一开始就从‘a’开始循环到‘m’结束吗?

另外,头文件为什么不是#include <cstring> 而是#include <string> 了?
请大家教教我,谢谢。


[解决办法]
word[0]=ch;用于将最终匹配的m这个字母赋给word[0]

如果没有这一句循环将无法结束
因为结束条件是word == mate

ch 从字母a开始,逐渐递增b,c,d
当为m时word 为mate 匹配结束

[解决办法]
简单点说就是循环字母表知道找到m这个字母
因为word原先为 "?ate "
就是要匹配第一个字母
[解决办法]
答楼主:
word!= "mate ";是for循环的终止条件,word[0]=ch;把word字串的首字节换成ch字符变量所指示的字符。整个意思串起来就是显示word字串直到word等于mate为止(每次用ch递增替换word字串的首字符)。
[解决办法]
for循环中不就告诉了程序一开始就从‘a’开始循环到‘m’结束吗?
好像没有说吧

结束条件是word== "mate "

通过改变c的字符值来改变word以使word满足等于mate从而退出循环的条件

因此最后一句是必需的.

[解决办法]
代码中为什么要有一句word[0]=ch这句代码了?for循环中不就告诉了程序一开始就从‘a’开始循环到‘m’结束吗?
---------
你可以想下,没有word[0]=ch这句,word的值在循环内一直没被修改,循环会停止么

你用的是C++的string,所以是#include <string>
#include <cstring> 是C里使用字符串函数需要的头文件

[解决办法]
如没用 word[0]=ch;...
word就一直等于 "?ate "
导致死循环.

热点排行