-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ケースに行き着きます。valuesnullifvalues != null

おそらく、基本的なブール代数ifを見て、条件が自分のケースに当てはまらない理由を理解する必要がありtrueます。

于 2012-08-18T10:00:11.443 に答える
0

値がnullであり、値がnullでないことを確認しているため、常に他のブロックで実行されます。

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 に答える
0

条件を実行する場合は、条件に従ってデータを作成します

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

そして、SOに投稿する前に十分な努力をしなかったための-1

于 2012-08-18T10:13:25.303 に答える
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;

import 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 に答える