jit*_*bug -2 c# if-statement curly-braces
我正在学习 C# 初学者课程,试图了解如何在 IF ELSE 语句中使用花括号。我发现如果我在 IF 或 ELSE 正文中有一个语句,我不需要卷曲,如果我有 2 个或更多语句,那么我需要卷曲。但是 > 并非总是如此!。我正在使用 Visual Studio,有时它编译时没有卷曲,有时我需要将它们放入。这太令人抓狂了。
正如您在此处看到的,控制台上打印的 2 行语句很好。(忽略其他东西)。没有卷发。
现在,我正在尝试在第二天进行编译,它需要大括号(尽管现在是 IF ELSE 的 IF 部分,没关系,我昨天使用 2 个语句没有问题)。
在这里使用大括号,错误消失了。
这令人沮丧,因为有时 VS 需要卷曲,有时则不需要。
我相信,如果正文中只有一个语句,我不需要花括号,如果正文中有 2 个或更多语句,我需要花括号来表明大括号中的所有内容都得到执行。
但是 Visual Studio 19 似乎每天都在改变主意。我一定要疯了。
小智 6
如果你注释第 31 和 32 行,它不会给你编译错误。
//this is correct format.
if(true)
doX();
else
doY();
//this is not.
if(true)
doX();
Console.WriteLine(); <- this is not part of if statement.
else doY();
Run Code Online (Sandbox Code Playgroud)
这里 Console.WriteLine() 被认为是一个独立的语句。因此, else 的“if”丢失了。
当你把花括号它认为是一个单一的块 -
//this is correct format.
if(true)
{
doX();
Console.WriteLine();
}
else doY();
Run Code Online (Sandbox Code Playgroud)