2017-06-03 3 views
-5

Que fait la variable négative dans un ternaire? Pourquoi la sortie -10 is 10?Opération ternaire avec une variable "négative"

public class Ternary { 
    public static void main(String[] args) { 
     int i, k; 
     i = -10; 
     k = i < 0 ? -i : i; 
     System.out.print(i + " is " + k); 
    } 
} 

Quelqu'un peut-il expliquer la fonction de la variable dans ce scénario? Que signifie -i?

+0

Je ne l'ai jamais entendu parler d'une variable négative avant. Qu'Est-ce que c'est? Voulez-vous dire "une variable qui a une valeur numérique négative"? – scottb

+0

Oui c'est.la variable 'i' est changée en '-i' en fonctionnement ternaire. –

+1

Un meilleur terme serait peut-être de * annuler * la variable ou que vous l'utilisez - pour obtenir la * valeur absolue * de la variable. –

Répondre

2

C'est unary operation-(-(1)) est 1. Il est une façon d'écrire plus

int i = -10, k = Math.abs(i); 
+0

Quelle est l'opération interne qui se produit dans ce scénario? comment 'je' est changé en '-i'? –

+1

Vous dites 'k = -i' si' i <0'. C'est ainsi que 'i' est changé en' -i'. – nbokmans

1

Il vérifie d'abord

-10 < 0, ce qui se révèle être vrai.

Ainsi, 'k' sera assigné avec la valeur - (- 10) comme i = -10. Le résultat devient 10.

Ensuite, vous avez la réponse

-10 est 10 comme valeur de i reste inchangé

+0

Ouais.Je l'ai eu.thanks! –