我该如何修复这个加密程序?

How do I fix this encrypting program?

我有一个用 C# 编写的加密程序,我正在为 class 做,只是需要一些帮助。

每当它加密应该变成 'Z' 的东西时,它就会变成“@”。我不确定为什么会这样。

有人可以帮忙吗?

                char key;
                int shift = 0;
                string clearText = string.Empty;
                Console.WriteLine("Please input your encryption key in uppercase:");
                key = Convert.ToChar(Console.ReadLine());
                shift = key - 'A';
                // Console.WriteLine("shift = {0}", shift);
                Console.WriteLine("Please input your string in uppercase letters:");
                clearText = Console.ReadLine();
                foreach (char ch in clearText)
                {
                    if (Char.IsUpper(ch))
                    {
                        if (Convert.ToChar(ch + shift) < 'Z')
                            Console.Write(Convert.ToChar(ch + shift));
                        else Console.Write(Convert.ToChar(ch + shift - 26));
                    }
                    else if (ch == ' ')
                        Console.Write(' ');

您检查了最多 'Z' 个字符,但不包括 Z。

if (Convert.ToChar(ch + shift) < 'Z') // Change this line ...
if (Convert.ToChar(ch + shift) <= 'Z') // ... to this.