-4

嗨,下面是我的程序,你能告诉我为什么第一个条件没有被执行吗?

  package com;

import java.util.ArrayList;
import java.util.List;

public class Test {

    public static void main(String args[]) {

        List<String> values = null;

        String Id = "1234";

        if (values != null && Id != null && values.size() > 1
                && !values.contains(Id)) {
// This is never executed
            System.out.println("Throw Exception");

        } else {
// This is always called
            System.out.println("Fine");

        }

    }
}
4

6 回答 6

1

你总是在这种else情况下结束,因为valuesnull和你的if条件需要values != null

也许您应该看一下基本的布尔代数,以了解为什么这种if情况不适true用于您的情况。

于 2012-08-18T10:00:11.443 回答
0

嗯:

List<String> values = null;

if (values != null && ...

您希望if分支上的代码如何执行?

我想你的意思是:

    if (values != null && Id != null && values.size() > 1
            && !values.contains(Id)) {
        System.out.println("Fine");
    } else {
        System.out.println("Throw Exception");
    }

这样,如果所有检查都成立,那么您就“很好”,否则就会出现问题。

于 2012-08-18T10:02:03.510 回答
0

值是NULL。所以只有ELSE部分会被执行。那么这里的问题实际上是什么?

我认为这实际上是您想要的

包com;

导入 java.util.ArrayList;导入 java.util.List;

public class Test {

    public static void main(String args[]) {

        List<String> values = null;
        String Id = "1234";

        // Some modification to values 

        if (values == null || Id == null || (values.size() > 1
                && !values.contains(Id))) {
            System.out.println("Throw Exception");
        } else {
            System.out.println("Fine");
        }

    }
}
于 2012-08-18T10:02:12.070 回答
0

在java中我们使用:

String test = "";
String test2 = "";

if(test.equal(test2)){
//something
}
else{
//something
}

在 C# 中,我们使用:

String test = "";
String test2 = "";

if(test == test2){
//something
}
else{
//something
}

比较字符串..希望这会有所帮助。:D

于 2013-09-19T17:14:46.547 回答
0

如果要执行条件,则根据条件创建数据

 List<String> values = new ArrayList<String>();
    values.add("12345");
    values.add("12345");

-1 表示在 SO 上发布之前没有付出足够的努力

于 2012-08-18T10:13:25.303 回答
0

由于 values 为 null 并且您正在检查 values 不是 null 那么它将始终执行 else 块

List<String> values = null;

                String Id = "1234";

                if (values != null && Id != null && !values.contains(Id)) {
        // This is never executed
                    System.out.println("Throw Exception");

                } else {
        // This is always called
                    System.out.println("Fine");

                }
于 2012-08-18T10:08:22.407 回答