id = (isChar ? (id + 1 > 122 ? 65 : id++) : id++);
这里的输入可以是转换为INT的int或char.然后我递增id并增加int或char.问题是,当我输入一个字符时,数字似乎没有改变?
作为一般规则,避免复杂表达式中的副作用(例如).他们使整个表达难以处理.这让你绊倒了.
更好的是,事先增加id,因为你似乎总是增加它:
id += 1; if (isChar && id > 122) id = 65;
要么
id = (isChar && id > 121) ? 65 : id + 1;