c# - 为什么'else'部分中的括号会创建一个无限循环,反之亦然?
问题描述
using System;
using static System.Console;
class EnterUppercaseLetters
{
static void Main()
{
string userInput;
char letter;
const char QUIT = '!';
Write("Enter an uppercase letter: ");
userInput = ReadLine();
letter = Convert.ToChar(userInput);
while(letter != '!')
{
if(letter >= 'A' && letter <= 'Z')
{
WriteLine("OK");
}
else
WriteLine("Sorry - that was not an uppercase letter");
WriteLine("Enter an uppercase letter or {0} to quit", QUIT);
userInput = ReadLine();
letter = Convert.ToChar(userInput);
}
}
}
代码按预期工作,我的“else”语句周围没有括号,但会用它们创建一个无限循环。只是想知道为什么会这样?
解决方案
如果您需要在其中执行多行,则需要在“else”之后包含花括号。否则它只会执行 else 条件之后的第一行。如果您需要在 else 中包含多行,则需要执行以下操作,
else{
WriteLine("Sorry - that was not an uppercase letter");
WriteLine("Enter an uppercase letter or {0} to quit", QUIT);
userInput = ReadLine();
letter = Convert.ToChar(userInput);
}
推荐阅读
- sql-server - 大表的TSQL校验和
- rabbitmq - Windows RabbitMQ 无法启动
- sql-server - Visual Studio 数据库项目无法识别 ELASTIC_POOL
- java - 重命名 Intellij 中多个子类中使用的变量
- objective-c - 解释 Metal 和 SIMD 中的不同类型
- python - numpy 中的联合 CDF
- java - 池 GRPC ManagedChannels 和 BlockingStubs 还是共享的?
- content-management-system - zofe/rapyd dev-master 的安装请求
- javascript - Console.log(responseObject) 输出无法通过对象引用的隐藏数据,这是我拼命尝试做的事情
- function - Lua,设置默认函数参数值。这不会错吧?