17

そのような操作のための演算子またはトリックはありますか? それとも使用する必要がありますか

if(5<i && i<10)

?


プロパティが ValueMember で指定されていない場合、SelectedValue はオブジェクトの ToString メソッドの結果を返します。

私のポイントは、comboBox からあなたが考えていることを得られないかもしれないということです。

これを試して:

string queryString = ("SELECT * FROM SecondaryEducation WHERE ProgramCode='" + PrgmCde.Items[PrgmCde.SelectedIndex].ToString() + "'");
4

6 に答える 6

24

不等式を連鎖させることはできません。isInRange(value, low, high)ただし、そのようなチェックを実行する静的ブール メソッドを定義することはできます。

Python やIconなどの他の一部の言語では、この表記が許可されています。

于 2012-05-18T19:03:02.480 に答える
13

Javaにはそのようなものはありません(ブール値を使用しない限り)。

コンパイラが嫌う5<i左側のブール値になります。<10

于 2012-05-18T19:03:51.147 に答える
5

残念ながら、連鎖不等式は現時点では Java でサポートされていません。言語については、この投稿を確認してください。

于 2012-05-18T19:04:40.717 に答える
5

単一の比較を使用できますが、通常よりも複雑です。

if (i - (Integer.MIN_VALUE + 6) < Integer.MIN_VALUE + (10 - 6))

これは、アンダーフローを使用して、5 以下のすべての値を大きな正の値に調整します。

これを使用する唯一の理由は、マイクロ最適化です。

于 2012-05-18T19:07:24.470 に答える
2

範囲

Java では比較を連鎖させることはできません。

範囲チェックを行う標準的な方法は、次のいずれかのGuava Rangesを使用することです。

import com.google.common.collect.Range;
...
    if(Range.open(5, 10).contains(x)){

または Apache Commons Lang (ただし、これはクローズド レンジのみを提供します):

import org.apache.commons.lang3.Range;
...
    if(Range.between(5 + 1, 10 - 1).contains(x)){
于 2018-01-28T17:40:19.917 に答える
1

a < x < b は (xa)(xb)<0 と同等です。または、x が一度だけ計算したい式の場合、

(x - (a+b)/2) ^ 2 < (ba)^2 / 4

2 つの非厳密な等式を同じように扱います。ただし、1 つの厳密な等価性と 1 つの非厳密な等価性を処理する方法はないと思います (x が整数でない限り)。

于 2014-07-11T14:05:06.340 に答える