首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >If语句中的if语句

If语句中的if语句
EN

Stack Overflow用户
提问于 2014-12-13 17:04:43
回答 2查看 83关注 0票数 0

我试图理解这段代码背后的逻辑

代码语言:javascript
复制
int i = 13;
if (i<10) if (i>=5)   Console.WriteLine("Case number 1");
else Console.WriteLine("case number 2");
Console.ReadLine();

,所以我知道这不是正确的代码(因为应该有方括号使这个应用程序工作)。

我知道如何通过修改使这段代码“干净”

--但我正在努力理解Csharp实际上是如何处理这个错误的代码的,这是执行这个代码的逻辑

根据我所读到的,在这种情况下(如果是>= 5),其他内容适用于最近的if。

因此,当我写i=3时,它读取第一个if,然后转到第一个,控制台给我"Case nr2“。

当我写i = 7时,它读到了第二个字母,并给出了"Case nr 1“

当我写i = 13的时候,它什么也没有给我

根据我在研究的时候所理解的,它应该是从2if之前测试开始的,所以从我所理解的当它测试第一个(如果它应该被测试到),如果它测试两个(如果是‘s),它也应该是第二个(如果是),因为if's没有真正的意义。

如果它只测试第二个,如果它应该给我的案件编号。

所以我的思维方式肯定是错的,但我找不到为什么它什么也没出现

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-13 17:11:12

您的代码如下:

代码语言:javascript
复制
if (i < 10)
{
    if (i >= 5) {
        Console.WriteLine("Case number 1");
    }
    else {
        Console.WriteLine("case number 2");
    }
}

Console.ReadLine();

因此,如果i[5,10)中,则是案例1,如果是在(-Infinity,10),则为案例2。

一些提示:

  • 考虑使用一些众所周知的代码约定。
  • 使用缩进使代码更具可读性
  • 无论有一个语句还是多个语句块,都要使用大括号。
  • 尽量不要在代码中有一些神奇的文本,这里的"Case“和"case”是一些可能会在测试场景中引起后续问题的东西。
票数 2
EN

Stack Overflow用户

发布于 2014-12-13 17:09:06

这就是if循环的工作方式(我缩进了代码并添加了大括号):

代码语言:javascript
复制
int i = 13;
if (i<10) {
    if (i>=5) {  
        Console.WriteLine("Case number 1");
    } else {
        Console.WriteLine("case number 2");
}
Console.ReadLine();

因此,内部的其他部分对应于if和条件i >= 5,因此当您的i= 13时,它的行为如下:

代码语言:javascript
复制
 is i < 10? No

因此,永远不要输入的if和执行下一个语句,即Console.ReadLine();

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27461402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档