0

複数の 3 項条件を使用できることは確認しましたが、1 つの条件が true の場合に 2 つの変数を割り当てる方法は見つかりませんでした。これは私が書こうとしている方法です:

    int[] chkNext(int mnd, int y) {  
        int[] date = new int[2];  
        mnd = 12 ? mnd = 1, y++ : mnd++; // returns the following: "error: : expected"
        date[0] = mnd, date[1] = y;  
        return date;  
    }  
4

2 に答える 2

8

ifステートメントを使用するだけです。

if (mnd == 12) {
//      ^^  very important
  mnd = 1;
  y++;
} else {
  mnd++;
}

この:

date[0] = mnd, date[1] = y;  

次のようにするとよいでしょう:

date[0] = mnd; date[1] = y;  

本当に必要ない場合は、コンマ演算子を使用しないでください。

于 2011-10-31T05:50:40.457 に答える
-3

'?'の前に条件があるはずなので、三項演算子の構成が間違っています。マットが示唆したように、より良いオプションはifステートメントを使用することです。

三部形式は、一般的に次のような単純なステートメントに使用できます

boolean isEven = (n!=0 && n%2 == 0) ? true : false;
于 2011-10-31T06:01:29.677 に答える