这是我很困惑的代码片段。我正在检查传入的字符串有多长。
我添加*
以获得一个标记值来停止while循环。
然而,我一直得到一个包含*
的长度值,我不明白为什么,因为带有嵌套的while循环if应该在{{1}之前停止}。
有人可以指出我做错了什么以及为什么我遇到这个问题?
*
答案 0 :(得分:2)
你第一次通过循环时自然会获得+1,因为你没有初始化变量“item”。同时使它成为while而不是while循环。
试试这个:
do
{
// This line moves out of the if statement
item = romanIn[length];
if(item != "*")
{
length++;
}
cout<<item;
}while(item!="*")
答案 1 :(得分:1)
项目的初始值是什么?
我们假设它是0.你进入循环 item == 0!= marker,所以你输入if,然后你说
item = romanIn [0],length ++
如果romanIn [0] ==“*”你将退出循环,但你的长度现在说1包括标记