关于for循环
时间:2011-12-05
来源:互联网
刚学C++,书籍是C++ Primer Plus 第五版。
有一段代码看得不是很明白。
// forstr2.cpp -- reversing ab array
#include <iostream>
#include <string>
int main()
{
using namespace std;
cout << "Enter a word: ";
string word;
cin >> word;
// physically modify string object
char temp;
int i, j;
for (j = 0, i = word.size() - 1; j < i; --i, ++j)
{ // start block
temp = word[i];
word[i] = word[j];
word[j] = temp;
} // end block
cout << word << "\nDone\n";
return 0;
}
测试条件 j < i ,为什么当 j 不小于或大于 i 时,程序还能继下去?不是应该循环停止吗?有点不明白,希望大家指点一下。
有一段代码看得不是很明白。
// forstr2.cpp -- reversing ab array
#include <iostream>
#include <string>
int main()
{
using namespace std;
cout << "Enter a word: ";
string word;
cin >> word;
// physically modify string object
char temp;
int i, j;
for (j = 0, i = word.size() - 1; j < i; --i, ++j)
{ // start block
temp = word[i];
word[i] = word[j];
word[j] = temp;
} // end block
cout << word << "\nDone\n";
return 0;
}
测试条件 j < i ,为什么当 j 不小于或大于 i 时,程序还能继下去?不是应该循环停止吗?有点不明白,希望大家指点一下。
作者: gtestm 发布时间: 2011-12-05
你的这个i = word.size() - 1在循环过程中word如果长度变了,i的值也会变化的。不知是不是这个原因。
如果满足了j>=i是循环一定会终止的。
你跟踪一下i,j的值看看
如果满足了j>=i是循环一定会终止的。
你跟踪一下i,j的值看看
作者: shimachao 发布时间: 2011-12-05
你确定在j >= i的时候还在运行??
作者: hnuqinhuan 发布时间: 2011-12-05
C/C++ code
#include <iostream> #include <string> int main() { using namespace std; cout << "Enter a word: "; string word; cin >> word; // physically modify string object char temp; int i, j; for (j = 0, i = word.size() - 1; j < i; --i, ++j) { // start block temp = word[i]; word[i] = word[j]; word[j] = temp; cout << "i =" << i << " j = " << j << endl; } // end block cout << word << "\nDone\n"; return 0; } //你在看看
作者: hnuqinhuan 发布时间: 2011-12-05
程序没有问题啊
当j≥i时,循环结束了啊
你可以分别输入“12345"和“123456”单步调试一下
当j≥i时,循环结束了啊
你可以分别输入“12345"和“123456”单步调试一下
作者: sxbwelcome 发布时间: 2011-12-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28