C#如何实现奇偶交替输入校验,连续奇偶相同则输出总和?
C# 奇偶交替输入校验实现方案
改动思路
要在原有累加逻辑基础上新增奇偶交替校验,只需要增加对上次输入奇偶性的记录,具体改动点如下:
- 新增
lastParity变量存储上一次输入的奇偶状态:初始值设为-1标识还未产生有效输入,后续偶数存0、奇数存1 - 保留原有
输入0或大于101的数值直接终止的逻辑 - 每次读取新输入后做奇偶校验:首次输入仅记录奇偶性,非首次输入如果和上次奇偶性一致直接终止循环
- 可自行选择违规输入是否计入总和,代码中已标注对应调整位置
完整实现代码
int n, sum = 0; // 存储上一次输入的奇偶性:-1=无历史输入,0=偶数,1=奇数 int lastParity = -1; do { Console.Write("Enter a number:"); n = int.Parse(Console.ReadLine()); // 原有终止逻辑:输入0或大于101的数值直接结束 if (n == 0 || n > 101) { break; } int currentParity = n % 2; // 非首次输入时校验奇偶是否交替 if (lastParity != -1 && currentParity == lastParity) { // 若需要将本次违规输入计入总和,可解开下一行注释 // sum += n; break; } // 合法输入计入总和,更新历史奇偶性 sum += n; lastParity = currentParity; } while (true); Console.WriteLine("Sum is:" + sum); Console.ReadKey();
逻辑说明
- 输入合法的场景下,会一直循环提示输入,直到触发
输入0/大于101或者连续两次奇偶相同的终止条件 - 代码默认违规的重复奇偶输入不计入总和,若业务需要计入,打开对应位置的注释即可
- 保持了原有代码的输入交互逻辑,仅新增校验逻辑,不会改变原有正常流程的使用体验
内容的提问来源于stack exchange,提问作者nica123
相关产品推荐
相关产品推荐

