Si sans autre opérateur ternaire

Jusqu’à présent, je cherchais à travers le net, la déclaration a toujours si et sinon condition comme a ? b : c a ? b : c . J’aimerais savoir si la déclaration if ternary peut être utilisée sans else . En supposant que j’ai le code suivant, je souhaite fermer le PreparedStatement s’il n’est pas nul

(J’utilise le langage de programmation Java.)

 PreparedStatement pstmt; //.... (pstmt!=null) ? pstmt.close : ; 

Non … tu ne peux pas faire ça. Essayez plutôt ceci:

 if(bool1 && bool2) voidFunc1(); 

Il suffit de l’écrire?

 if(pstmt != null) pstmt.close(); 

C’est exactement la même longueur.

Pourquoi utiliser un opérateur ternaire quand vous n’avez qu’un choix?

 if (pstmt != null) pstmt.close(); 

est assez!

Ternaire if opérateur est l’ opérateur ternaire particulier. Unique en son genre.

De Wiki:

En mathématiques, une opération ternaire est une opération n-aire avec n = 3.

Cela signifie que les 3 opérandes sont nécessaires pour vous.

Une opération ternaire est appelée ternary car elle prend 3 arguments, si elle prend 2, c’est une opération binary.

Et comme noté ci-dessus, c’est une expression renvoyant une valeur.

Si vous omettez le cas contraire, votre situation ne serait pas définie et l’expression ne renverrait pas de valeur.

Donc, comme noté dans une autre réponse, vous devez utiliser une instruction if.

Comme mentionné dans les autres réponses, vous ne pouvez pas utiliser un opérateur ternaire pour le faire.

Cependant, si le besoin vous en dit, vous pouvez utiliser Java 8 Facultatif et lambdas pour placer ce type de logique dans une seule déclaration:

 Optional.of(pstmt).ifPresent((p) -> p.close()) 

Il semble dommage de ne pas pouvoir utiliser un ternaire lors de la construction d’un tableau comportant des éléments facultatifs.

 my $yn = 'N'; my $foo = [ { n => 'a' }, ( $yn eq 'Y' ? { n => 'b' } : undef), { n => 'c' } ]; say Dumper $foo; 

Vous ne voulez vraiment rien plutôt que undef ou une chaîne vide.

Cela vous donne également un élément vide plutôt que «rien».

 my $yn = 'N'; my $foo = [ { n => 'a' }, $yn eq 'Y' && { n => 'b' }, { n => 'c' } ]; say Dumper $foo;