首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我不明白为什么这个简单的语句不起作用

我不明白为什么这个简单的语句不起作用
EN

Stack Overflow用户
提问于 2011-12-16 21:25:00
回答 2查看 146关注 0票数 2

所以我基本上完成了一个程序,在它的末尾,我将字符串从一个数组打印到一个文件。该数组可能包含空值,因此我在打印之前检查是否为空值,但我始终在文件的末尾以1个空值结束...

下面是我用来检查null的代码

代码语言:javascript
运行
复制
for(int i=0;i<array2.length;i++)
{
    if(array2[i] != null)
        out.println(array2[i]);
}

我知道该数组包含多个null实例,但只打印了1个。我尝试使用调试器,当array2i == null时,它仍然输入条件语句...

因此,我添加了一条println语句来帮助我了解发生了什么。它现在看起来像这样:

代码语言:javascript
运行
复制
for(int i=0;i<array2.length;i++)
        {
            if(array2[i] != null)
            {
                System.out.println("Adding " + array2[i]);
                out.println(array2[i]);
            }

在将所有字符串值打印到控制台之后,它会打印“添加null”,所以我知道在这条if语句中正在发生这种情况。为什么会这样?

EN

回答 2

Stack Overflow用户

发布于 2011-12-16 21:28:37

调试器并不总是清楚它是否输入了if条件。我不相信这段代码正在进入if条件,因为它看起来是这样的,并且您的null可能来自另一行代码。

您可以将代码编写为

代码语言:javascript
运行
复制
for(ElementType e: array2.length)
    if(e != null)
        out.println("[" + e+ ']'); // extra text for debugging.
// I suspect your `null` will still be on a line of its own
票数 1
EN

Stack Overflow用户

发布于 2011-12-16 21:35:51

您是不是也缺少了if语句的一组小技巧?

代码语言:javascript
运行
复制
for(int i=0;i<array2.length;i++) 
{ 
  if(array2[i] != null) 
  {
    out.println(array2[i]); 
  }
} 
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8534801

复制
相关文章

相似问题

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