c# – 嵌套的内联IF语句

c# – 嵌套的内联IF语句,第1张

概述我有点困惑为什么这不起作用: id = (isChar ? (id + 1 > 122 ? 65 : id++) : id++); 这里的输入可以是转换为INT的int或char.然后我递增id并增加int或char.问题是,当我输入一个字符时,数字似乎没有改变? 在两种情况下都将id更改为id 1.你正在丢弃最后执行的赋值增量的变化. 作为一般规则,避免复杂表达式中的副作用(例如).他们使整个表 我有点困惑为什么这不起作用:

ID = (isChar ? (ID + 1 > 122 ? 65 : ID++) : ID++);

这里的输入可以是转换为INT的int或char.然后我递增ID并增加int或char.问题是,当我输入一个字符时,数字似乎没有改变?

解决方法 在两种情况下都将ID更改为ID 1.你正在丢弃最后执行的赋值增量的变化.

作为一般规则,避免复杂表达式中的副作用(例如).他们使整个表达难以处理.这让你绊倒了.

更好的是,事先增加ID,因为你似乎总是增加它:

ID += 1;if (isChar && ID > 122)    ID = 65;

要么

ID = (isChar && ID > 121) ? 65 : ID + 1;
总结

以上是内存溢出为你收集整理的c# – 嵌套内联IF语句全部内容,希望文章能够帮你解决c# – 嵌套的内联IF语句所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1225374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存