C#中的简单程序,请帮忙解释一下,谢谢!

string[]name={"梅西","卡卡","郑大世"};strings="";for(inti=0;i<name.Length-1;i++){s=s+name[i]... string[] name = { "梅西", "卡卡", "郑大世" };
string s = "";
for (int i = 0; i < name.Length-1; i++)
{
s = s + name[i] + "|";

}
//Console.Write(s);
if (name.Length > 0)
{
s = s + name[name.Length - 1];
}
Console.Write(s);
Console.ReadLine();
就是不明白一点:s = s + name[name.Length - 1];
为什么还要在For循环外面用
我是想输出:梅西|卡卡|郑大世。
展开
 我来答
百度网友1f05fa8
2011-06-16 · TA获得超过392个赞
知道小有建树答主
回答量:543
采纳率:0%
帮助的人:321万
展开全部
string[] name = { "梅西", "卡卡", "郑大世" };
string s = "";
for (int i = 0; i < name.Length-1; i++)
{
s = s + name[i] + "|";

}

//到这里s=梅西|卡卡|
//Console.Write(s);
if (name.Length > 0)
{
s = s + name[name.Length - 1];//执行s+郑大世
}
//到这一步,s=梅西|卡卡|郑大世
Console.Write(s);
Console.ReadLine();
因为你的for里面只执行了位置为0(梅西)和1(卡卡)的元素,而位置为2(郑大世)的元素在for外面单独执行;若改成 for (int i = 0; i < name.Length; i++),循环后s=梅西|卡卡|郑大世|,需要想办法去掉最后的“|”
ayu_xb
2011-06-16
知道答主
回答量:18
采纳率:0%
帮助的人:10.9万
展开全部
for (int i = 0; i < name.Length-1; i++) 这里有问题,应该写 i <= name.Length-1; 或i < name.Length;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友801b91b
2011-06-16 · TA获得超过8071个赞
知道大有可为答主
回答量:1152
采纳率:100%
帮助的人:1716万
展开全部
for (int i = 0; i < name.Length-1; i++)
这个处理了n-1个元素,(n指数组长度)

最后一个元素如果也放在for循环里处理的话,
最后面会多一个"|",所以要单独处理

当然也可以在for里处理了,然后出来后截掉最后一位。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
samneltao
2011-06-16
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
可以自己先实行一下试一试。
string[] name = { "梅西", "卡卡", "郑大世" };
string s = "";
for (int i = 0; i < name.Length-1; i++)
{
s = s + name[i] + "|";

}
//Console.Write(s);
到这结果是梅西|卡卡|
if (name.Length > 0)
{
s = s + name[name.Length - 1];
}
Console.Write(s);
Console.ReadLine();
到这是你想要的结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式