C# 增量(x+;+;)的打印结果返回原始值,而不是增量值 string text=“你好”; char[]ch=text.ToCharArray(); 对于(var x=0;x
您正在同时写入和递增,请尝试先递增,然后写入C# 增量(x+;+;)的打印结果返回原始值,而不是增量值 string text=“你好”; char[]ch=text.ToCharArray(); 对于(var x=0;x,c#,char,increment,C#,Char,Increment,您正在同时写入和递增,请尝试先递增,然后写入 string text = "hello"; char[] ch = text.ToCharArray(); for (var x=0; x<text.Length; x++) { Console.Write(ch[x]++); } 用于(x=0;x或如果您患有LINQ OCD for (x=0;
string text = "hello";
char[] ch = text.ToCharArray();
for (var x=0; x<text.Length; x++)
{
Console.Write(ch[x]++);
}
用于(x=0;x或如果您患有LINQ OCD
for (x=0; x<text.Length; x++){
ch[x]++;
Console.Write(ch[x]);
}
您只需在循环后从字符数组创建一个新字符串,如var result=new string(ch);
或执行Console.Write(++ch[x]);
,这样您就可以在打印字符之前增加字符。@juharr请在回答部分回答您希望z
变成什么?一个{/code>相关问题(关于递增值):这是否回答了您的问题?为什么不Console.Write(++ch[x])
?@John依赖于++
的副作用通常是有风险的——对代码的任何更改都会改变行为。当一个人不这样做时,对代码进行推理要容易得多。也就是说,GO根本不从增量返回值以避免整个混淆-@AlexeiLevenkov我认为++x
与x++
是有区别的C风格语言中定义的行为?我同意,当事情写得更明确时,遵循代码会更容易。@John它主要是被定义的…比如++x++-++x++
我认为允许-1,0,1基于C/C++中的月亮相位…或者从OP的代码更改为本文中显示的代码-只是将x++内联到写-非常天真,容易被忽略。在代码审查期间,还需要确保它没有被错放在]
位置-ch[x]++
与ch[x++]
相比……只是不值得学习所有与返回值相关的已定义和更重要的未定义行为。
Console.WriteLine(string.Concat(text.Select(x => ++x)));