Wat betekent ? in Java?

Ik weet niet waar het vraagteken (?) voor staat in Java, ik was bezig met een klein programma, een Nim-game. zochten hulp in een boek en zagen deze verklaring:

int pinsToTake = (min >= 2) ? 2 : 1;

Ik begrijp het niet, wat zal ? voorstellen, kan het iets te maken hebben met een if-statement, maar zet je het in een variabele? en de : kan iets “anders” zijn? (deze dingen die ik net zei kunnen erg misleidend zijn)


Antwoord 1, autoriteit 100%

sommige = (min >= 2) ? 2 : 1;

Dit wordt een ternaire operator genoemd, die kan worden gebruikt als if-else. dit komt overeen met

if((min >= 2) {
   someval =2;
} else {
   someval =1
}

Volg deze zelfstudie voor meer informatie en gebruik.


Antwoord 2, autoriteit 27%

De ternary operator ook wel de voorwaardelijke operator genoemd, kijk eens referentie

like Object bar = foo.isSelected() ? getSelected(foo) : getSelected(baz);

bijv. operand1 ? operand2 : operand3

  • als operand1 waar is, wordt operand2 geretourneerd, anders wordt operand3 geretourneerd
  • operand1 moet een booleaans type zijn
  • operand1 kan een expressie zijn die resulteert in een booleaans type
  • operand1 en operand2 moeten promoeerbare numerieke typen of castable objectreferenties zijn, of null
  • als een van operand2 of operand3 een byte is en de andere een short, is het type van de geretourneerde waarde een short
  • als een van operand2 of operand3 een byte, short of char is en de andere een constante int-waarde is die binnen de andere operanden past
    bereik, het type van de geretourneerde waarde is het type van de andere
    operand
  • anders is de normale binaire numerieke promotie van toepassing
  • als een van operand2 of operand3 een null is, is het type van de return het type van de andere operand
  • als zowel operand2 als operand3 verschillende typen zijn, moet een van beide compatibel (castable) zijn met het andere type
    referentie

Antwoord 3, autoriteit 13%

het betekent:

if(min >= 2) 
   someval =2;
else 
   someval =1

Het heet een ternaire operator
Bekijk dit java voorbeeld ook


Antwoord 4, autoriteit 13%

Dat is een ternaire operator. Bekijk het document van Oracle voor meer informatie. Om een ​​lang verhaal kort te maken, het is een if-else-statement dat in een enkele regel kan worden gedaan en binnen methoden kan worden gebruikt en om variabele waarden te definiëren.

Syntaxis:

boolean_expression ? do_if_true : do_if_false;

Parallelisme met if-else-statement:

if(boolean_expression)
    //do_if_true;
else 
    //do_if_false;

Ik heb expres geen haakjes gebruikt, omdat je maar één regel code kunt uitvoeren in do_if_true en do_if_false.

Voorbeeld van gebruik:

boolean hello = true;
String greetings = hello ? "Hello World!" : "No hello for you...";

Hiermee wordt someString ingesteld als "Hello World!" aangezien de booleaanse variabele hello op true evalueert. Aan de andere kant kun je deze uitdrukkingen nesten:

boolean hello = true;
boolean world = false;
String greetings = hello ? (world ? "Hello World!" : "Hello Stranger!") : "No hello for you...";

In dit geval hebben begroetingen de waarde "Hello Stranger!";


Antwoord 5, autoriteit 3%

Het wordt de Ternary If-operator genoemd, het is gewoon een afkorting voor een if...else


Antwoord 6

“? :” is een ternaire operator die gelijk is aan een if else-statement.

In jouw voorbeeld:

   pinsToTake = (min >= 2) ? 2 : 1 

if min >= 2 wijs dan 2 toe aan pinsToTake, anders wijs 1 toe


Antwoord 7

max = (a > b) ? a : b;

(a > b) ? een: b; is een uitdrukking die een van de twee waarden a of b retourneert.
De voorwaarde, (a > b), wordt getest. Als het waar is, wordt de eerste waarde, a, geretourneerd. Als het onwaar is, wordt de tweede waarde, b, geretourneerd.
Welke waarde ook wordt geretourneerd, is afhankelijk van de voorwaardelijke test, een > B. De voorwaarde kan elke uitdrukking zijn die een booleaanse waarde retourneert.


Antwoord 8

Het wordt een voorwaardelijke operator genoemd. Dit is hoe het werkt.
als min groter is dan of gelijk is aan 2, dan is de eerste waarde na ? dat is hier 2, wordt toegewezen aan de bijbehorende variabele, anders wordt de tweede waarde die hier 1 is, toegewezen.


Antwoord 9

Deze link vertelt je alles wat je nodig hebt.

Samenvatting omwille van het archief:

Dit wordt de voorwaardelijke operator genoemd. Het is een ternaire operator die:
duurt drie termen:

BooleanExpressie ? Uitdr1 : Uitdr2

De Booleaanse expressie wordt geëvalueerd. Als het waar is, is de waarde van de
hele uitdrukking is Uitdr1. Als het onwaar is, de waarde van het geheel
uitdrukking is Uitdr2.

Het dient dus hetzelfde doel als een if-statement, maar het is een
term in plaats van een hele verklaring. Dat betekent dat je het kunt insluiten in
plaatsen waar u geen hele verklaring kunt gebruiken.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

ten − 2 =

Other episodes