Procedure incomprise ? : ;

Résolu
Utilisateur anonyme - 23 janv. 2007 à 21:16
 Utilisateur anonyme - 24 janv. 2007 à 10:30
Bonjour a tous, désolé pour le titre je ne savais quoi mettre...

J'ai le bout de code suivant:
Mise a jour du plateau de jeu, ----
//Si la case est vide, on met à jour son type et la variable tourif(plateau[i][j]==Vide)
{
plateau[i][j] = tour;
tour = (tour==Rond)?Croix:Rond;
}
Il s'agit d'un morpion, avec donc un tableau plateau a 2 dimensions 3x3, une variable tour de type Case (case = enum (rond, croix, vide)).
Et il est expliquer:
le fait que le clic n'est pris en compte que si la case est vide est déjà un bon point. Remarquons qu'après la mise à jour de la case (si elle est effectuée), nous mettons également à jour la variable tour.

Je ne comprends pas la ligne avec les ? : ; nu les explications fournit et le code qui en decoule...

Si quelqu'un pourrait m'expliquer, j'avoue ne jamais avoir rencontrer de ? dans une ligne de code...

Merci d'avance !

2 réponses

pepsidrinker Messages postés 151 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 15 avril 2009
23 janv. 2007 à 21:30
C'est exactement le meme fonction que iif() en VB.
Premiere 'argument' est le condition , (ex : b != 9), suivit de '?', suivit de la valeur recu si la condition est vrai,
suivi de ':', suivi de la valeur recu si la condition est fausse.
[variable = (condition)?ValeurSiVrai:ValeurSiFaux; ]
Voici la syntaxe: (un exemple).

 int a = 3;
 int c = (a>4)?6:2;
ici, c recevera la valeur 2, puisque a n'est pas plus grand que 4.
Si a aurait été >4, c aurait recu la valeur 6.

En fait, cette instruction peut se traduire comme suit:
---
if(a>4)
c = 6;
else
c = 2;
-----

Voila.

Pepsidrinker
3
Utilisateur anonyme
24 janv. 2007 à 10:30
Merci beaucoup, réponse très clair :)
0
Rejoignez-nous