我使用下面的代码找出给定字符串的长度:
string foo = "Welcome to stack overflow";
int strlen;
for (int i=0; i<foo.length; strlen++){}
Console.WriteLine(strlen.ToString());
但代码永远不会离开循环。
答案 0 :(得分:3)
嗯,这很奇怪。
我不明白你的逻辑,你已经有了字符串长度,为什么要用循环将它应用到另一个int?
但是,嗯,我该判断谁?
你的循环问题在于你没有增加i
的价值
这样做:
for (int i=0; i<foo.Length; i++)
{
strlen++;
}
您可以删除循环并对代码执行此操作:
string foo = "Welcome to stack overflow";
Console.WriteLine("String length: " + foo.Length.ToString());
修改强>
如评论中所述:
length属性必须首字母大写,因为C#区分大小写。 - Jon Skeet
答案 1 :(得分:1)
你永远不会增加“我”所以“i&lt; foo.length”将永远是真的
答案 2 :(得分:1)
您应该遍历i
,而不是strlen
:
for (int i=0; i<foo.length; i++){}
答案 3 :(得分:1)
您有一个拼写错误(foo.Length
,而不是foo.length
)和两个错误:
0
)上分配int strlen = 0
i++
)类似的东西:
string foo = "Welcome to stack overflow";
// error: assign 0 to strlen
int strlen = 0;
// Typo: foo.Length instead of foo.length
// error: do not forget to increment "i" as well as "strlen"
for (int i = 0; i < foo.Length; strlen++, i++) {}
// 25
Console.WriteLine(strlen.ToString());
测试:
// 25
Console.WriteLine(foo.Length);