bjr,
j'ai dans un exemple un programme qui contient la ligne :
cout << endl << "le nombre 11 etait " << (b2 ? "TROUVE" : "NON
TROUVE") << endl;
je intéresse surtout à (b2 ? "TROUVE" : "NON TROUVE")
est ce que opérateur évaluation "?" est un vestige de C ?
Un"vestige" non, mais ca fait effectivement partie du C, et donc aussi du
si je remplace ce morceau par
( if b2 "TROUVE" else "NON TROUVE") cela ne fonctionne pas, pourtant
il s'agit d'evaluation sur b2
if (b2)
hormis le fait que cette écriture lorsqu'elle est fréquente est
obscure et limite 'incantatoire' qu'elle est sont intérêt et pourquoi
fonctionne t elle ou un if ne fonctionne pas?
Elle a a la fois l'avantage et le défaut d'être compact, ce qui selon les
bjr,
j'ai dans un exemple un programme qui contient la ligne :
cout << endl << "le nombre 11 etait " << (b2 ? "TROUVE" : "NON
TROUVE") << endl;
je intéresse surtout à (b2 ? "TROUVE" : "NON TROUVE")
est ce que opérateur évaluation "?" est un vestige de C ?
Un"vestige" non, mais ca fait effectivement partie du C, et donc aussi du
si je remplace ce morceau par
( if b2 "TROUVE" else "NON TROUVE") cela ne fonctionne pas, pourtant
il s'agit d'evaluation sur b2
if (b2)
hormis le fait que cette écriture lorsqu'elle est fréquente est
obscure et limite 'incantatoire' qu'elle est sont intérêt et pourquoi
fonctionne t elle ou un if ne fonctionne pas?
Elle a a la fois l'avantage et le défaut d'être compact, ce qui selon les
bjr,
j'ai dans un exemple un programme qui contient la ligne :
cout << endl << "le nombre 11 etait " << (b2 ? "TROUVE" : "NON
TROUVE") << endl;
je intéresse surtout à (b2 ? "TROUVE" : "NON TROUVE")
est ce que opérateur évaluation "?" est un vestige de C ?
Un"vestige" non, mais ca fait effectivement partie du C, et donc aussi du
si je remplace ce morceau par
( if b2 "TROUVE" else "NON TROUVE") cela ne fonctionne pas, pourtant
il s'agit d'evaluation sur b2
if (b2)
hormis le fait que cette écriture lorsqu'elle est fréquente est
obscure et limite 'incantatoire' qu'elle est sont intérêt et pourquoi
fonctionne t elle ou un if ne fonctionne pas?
Elle a a la fois l'avantage et le défaut d'être compact, ce qui selon les
bjr,
j'ai dans un exemple un programme qui contient la ligne :
cout << endl << "le nombre 11 etait " << (b2 ? "TROUVE" : "NON TROUVE")
<<
endl;
je intéresse surtout à (b2 ? "TROUVE" : "NON TROUVE")
est ce que opérateur évaluation "?" est un vestige de C ?
si je remplace ce morceau par
( if b2 "TROUVE" else "NON TROUVE") cela ne fonctionne pas, pourtant il
bjr,
j'ai dans un exemple un programme qui contient la ligne :
cout << endl << "le nombre 11 etait " << (b2 ? "TROUVE" : "NON TROUVE")
<<
endl;
je intéresse surtout à (b2 ? "TROUVE" : "NON TROUVE")
est ce que opérateur évaluation "?" est un vestige de C ?
si je remplace ce morceau par
( if b2 "TROUVE" else "NON TROUVE") cela ne fonctionne pas, pourtant il
bjr,
j'ai dans un exemple un programme qui contient la ligne :
cout << endl << "le nombre 11 etait " << (b2 ? "TROUVE" : "NON TROUVE")
<<
endl;
je intéresse surtout à (b2 ? "TROUVE" : "NON TROUVE")
est ce que opérateur évaluation "?" est un vestige de C ?
si je remplace ce morceau par
( if b2 "TROUVE" else "NON TROUVE") cela ne fonctionne pas, pourtant il
La sémantique est :
test ? <expression_si_vrai> : <expression_si_faux>
Elle a a la fois l'avantage et le défaut d'être compact, ce qui selon les
gens (et les cas!) soit alourdit soit rend plus clair le code.
La différence sémantique avec un if est que l'expression ( ... ? ... :
...)
"renvoie" (le terme exact est "est évaluée comme") une valeur de type
const
char* qui peut ête envoyé directement dans le flux. Par contre,
l'expression
if ne "renvoie" rien en elle même.
Ton exemple est un cas ou je trouve, personnellement, que l'écriture "...
?
... : ..." est plus claire, mais c'est hautement discutable.
La sémantique est :
test ? <expression_si_vrai> : <expression_si_faux>
Elle a a la fois l'avantage et le défaut d'être compact, ce qui selon les
gens (et les cas!) soit alourdit soit rend plus clair le code.
La différence sémantique avec un if est que l'expression ( ... ? ... :
...)
"renvoie" (le terme exact est "est évaluée comme") une valeur de type
const
char* qui peut ête envoyé directement dans le flux. Par contre,
l'expression
if ne "renvoie" rien en elle même.
Ton exemple est un cas ou je trouve, personnellement, que l'écriture "...
?
... : ..." est plus claire, mais c'est hautement discutable.
La sémantique est :
test ? <expression_si_vrai> : <expression_si_faux>
Elle a a la fois l'avantage et le défaut d'être compact, ce qui selon les
gens (et les cas!) soit alourdit soit rend plus clair le code.
La différence sémantique avec un if est que l'expression ( ... ? ... :
...)
"renvoie" (le terme exact est "est évaluée comme") une valeur de type
const
char* qui peut ête envoyé directement dans le flux. Par contre,
l'expression
if ne "renvoie" rien en elle même.
Ton exemple est un cas ou je trouve, personnellement, que l'écriture "...
?
... : ..." est plus claire, mais c'est hautement discutable.
Cela semble impliquer que <expression_si_vrai> et <expression_si_faux>
soit
de meme type. Est ce tjrs le cas ?
ex: cout << (b1 ? 3 : 4.568); // si b1==true alors cout << int (3) sinon
cout << float (4.568)Elle a a la fois l'avantage et le défaut d'être compact, ce qui selon
les
gens (et les cas!) soit alourdit soit rend plus clair le code.
La différence sémantique avec un if est que l'expression ( ... ? ... :
...)"renvoie" (le terme exact est "est évaluée comme") une valeur de type
constchar* qui peut ête envoyé directement dans le flux. Par contre,
l'expressionif ne "renvoie" rien en elle même.
Le type renvoyé est -il tjrs char* ( cf question precedente) ?
Cela semble impliquer que <expression_si_vrai> et <expression_si_faux>
soit
de meme type. Est ce tjrs le cas ?
ex: cout << (b1 ? 3 : 4.568); // si b1==true alors cout << int (3) sinon
cout << float (4.568)
Elle a a la fois l'avantage et le défaut d'être compact, ce qui selon
les
gens (et les cas!) soit alourdit soit rend plus clair le code.
La différence sémantique avec un if est que l'expression ( ... ? ... :
...)
"renvoie" (le terme exact est "est évaluée comme") une valeur de type
const
char* qui peut ête envoyé directement dans le flux. Par contre,
l'expression
if ne "renvoie" rien en elle même.
Le type renvoyé est -il tjrs char* ( cf question precedente) ?
Cela semble impliquer que <expression_si_vrai> et <expression_si_faux>
soit
de meme type. Est ce tjrs le cas ?
ex: cout << (b1 ? 3 : 4.568); // si b1==true alors cout << int (3) sinon
cout << float (4.568)Elle a a la fois l'avantage et le défaut d'être compact, ce qui selon
les
gens (et les cas!) soit alourdit soit rend plus clair le code.
La différence sémantique avec un if est que l'expression ( ... ? ... :
...)"renvoie" (le terme exact est "est évaluée comme") une valeur de type
constchar* qui peut ête envoyé directement dans le flux. Par contre,
l'expressionif ne "renvoie" rien en elle même.
Le type renvoyé est -il tjrs char* ( cf question precedente) ?
"heinquoi" <nospam* writes:
|> j'ai dans un exemple un programme qui contient la ligne :
|> cout << endl << "le nombre 11 etait " << (b2 ? "TROUVE" : "NON TROUVE") <<
|> endl;
|> je intéresse surtout à (b2 ? "TROUVE" : "NON TROUVE")
|> est ce que opérateur évaluation "?" est un vestige de C ?
Dans le même sens que l'opérateur de '+' est un vestige de C ?
|> si je remplace ce morceau par
|> ( if b2 "TROUVE" else "NON TROUVE") cela ne fonctionne pas, pourtant il
|> s'agit d'evaluation sur b2
|> hormis le fait que cette écriture lorsqu'elle est fréquente est
|> obscure et limite 'incantatoire' qu'elle est sont intérêt et
|> pourquoi fonctionne t elle ou un if ne fonctionne pas?
Parce qu'un if, c'est une instruction de contrôle de flux, et ?:, c'est
un opérateur. On aurait pu imaginer qu'le même syntaxe sert dans les
deux cas, mais ce n'est pas le cas en C ni en C++ (ni en Java, ni en
Objective C, ni en ...).
Je ne sais pas en ce qui concerne les autres, mais je m'en sers assez
librement. Si l'idée importante derrière un bout de code, c'est que la
valeur x soit affectée, et non qu'on a une condition, je le trouve plus
claire d'écrire :
x = ( condition
? a
: b ) ;
que :
if ( condition ) {
x = a ;
} else {
x = b ;
}
Et si c'est:
"heinquoi" <nospam*heinquoi1@libertysurf.fr> writes:
|> j'ai dans un exemple un programme qui contient la ligne :
|> cout << endl << "le nombre 11 etait " << (b2 ? "TROUVE" : "NON TROUVE") <<
|> endl;
|> je intéresse surtout à (b2 ? "TROUVE" : "NON TROUVE")
|> est ce que opérateur évaluation "?" est un vestige de C ?
Dans le même sens que l'opérateur de '+' est un vestige de C ?
|> si je remplace ce morceau par
|> ( if b2 "TROUVE" else "NON TROUVE") cela ne fonctionne pas, pourtant il
|> s'agit d'evaluation sur b2
|> hormis le fait que cette écriture lorsqu'elle est fréquente est
|> obscure et limite 'incantatoire' qu'elle est sont intérêt et
|> pourquoi fonctionne t elle ou un if ne fonctionne pas?
Parce qu'un if, c'est une instruction de contrôle de flux, et ?:, c'est
un opérateur. On aurait pu imaginer qu'le même syntaxe sert dans les
deux cas, mais ce n'est pas le cas en C ni en C++ (ni en Java, ni en
Objective C, ni en ...).
Je ne sais pas en ce qui concerne les autres, mais je m'en sers assez
librement. Si l'idée importante derrière un bout de code, c'est que la
valeur x soit affectée, et non qu'on a une condition, je le trouve plus
claire d'écrire :
x = ( condition
? a
: b ) ;
que :
if ( condition ) {
x = a ;
} else {
x = b ;
}
Et si c'est:
"heinquoi" <nospam* writes:
|> j'ai dans un exemple un programme qui contient la ligne :
|> cout << endl << "le nombre 11 etait " << (b2 ? "TROUVE" : "NON TROUVE") <<
|> endl;
|> je intéresse surtout à (b2 ? "TROUVE" : "NON TROUVE")
|> est ce que opérateur évaluation "?" est un vestige de C ?
Dans le même sens que l'opérateur de '+' est un vestige de C ?
|> si je remplace ce morceau par
|> ( if b2 "TROUVE" else "NON TROUVE") cela ne fonctionne pas, pourtant il
|> s'agit d'evaluation sur b2
|> hormis le fait que cette écriture lorsqu'elle est fréquente est
|> obscure et limite 'incantatoire' qu'elle est sont intérêt et
|> pourquoi fonctionne t elle ou un if ne fonctionne pas?
Parce qu'un if, c'est une instruction de contrôle de flux, et ?:, c'est
un opérateur. On aurait pu imaginer qu'le même syntaxe sert dans les
deux cas, mais ce n'est pas le cas en C ni en C++ (ni en Java, ni en
Objective C, ni en ...).
Je ne sais pas en ce qui concerne les autres, mais je m'en sers assez
librement. Si l'idée importante derrière un bout de code, c'est que la
valeur x soit affectée, et non qu'on a une condition, je le trouve plus
claire d'écrire :
x = ( condition
? a
: b ) ;
que :
if ( condition ) {
x = a ;
} else {
x = b ;
}
Et si c'est:
Le type renvoyé est le type de <expression_si_vrai>.
<expression_si_faux> doit être du même type qui <expression_si_vrai> (ou au
moins castable par le compilo)
Le type renvoyé est le type de <expression_si_vrai>.
<expression_si_faux> doit être du même type qui <expression_si_vrai> (ou au
moins castable par le compilo)
Le type renvoyé est le type de <expression_si_vrai>.
<expression_si_faux> doit être du même type qui <expression_si_vrai> (ou au
moins castable par le compilo)
Dans le même sens que l'opérateur de '+' est un vestige de C ?
Dans le même sens que l'opérateur de '+' est un vestige de C ?
Dans le même sens que l'opérateur de '+' est un vestige de C ?
Si l'idée importante derrière un bout de code, c'est que la
valeur x soit affectée, et non qu'on a une condition, je le trouve plus
claire d'écrire :
x = ( condition
? a
: b ) ;
Si l'idée importante derrière un bout de code, c'est que la
valeur x soit affectée, et non qu'on a une condition, je le trouve plus
claire d'écrire :
x = ( condition
? a
: b ) ;
Si l'idée importante derrière un bout de code, c'est que la
valeur x soit affectée, et non qu'on a une condition, je le trouve plus
claire d'écrire :
x = ( condition
? a
: b ) ;
"heinquoi" <nospam* a écritCela semble impliquer que <expression_si_vrai> et
<expression_si_faux> soit de meme type. Est ce tjrs le cas ?
ex: cout << (b1 ? 3 : 4.568); // si b1==true alors cout << int (3) sinon
cout << float (4.568)Elle a a la fois l'avantage et le défaut d'être compact, ce qui
selon les gens (et les cas!) soit alourdit soit rend plus clair le
code.
La différence sémantique avec un if est que l'expression ( ... ?
... : ...) "renvoie" (le terme exact est "est évaluée comme") une
valeur de type const char* qui peut ête envoyé directement dans le
flux. Par contre, l'expression if ne "renvoie" rien en elle même.
Le type renvoyé est -il tjrs char* ( cf question precedente) ?
Le type renvoyé est le type de <expression_si_vrai>.
<expression_si_faux> doit être du même type qui <expression_si_vrai>
(ou au moins castable par le compilo)
Dans ton exemple, le résultat est "cout << 3" si vrai "cout << (int) 4.568"
si faux
"heinquoi" <nospam*heinquoi1@libertysurf.fr> a écrit
Cela semble impliquer que <expression_si_vrai> et
<expression_si_faux> soit de meme type. Est ce tjrs le cas ?
ex: cout << (b1 ? 3 : 4.568); // si b1==true alors cout << int (3) sinon
cout << float (4.568)
Elle a a la fois l'avantage et le défaut d'être compact, ce qui
selon les gens (et les cas!) soit alourdit soit rend plus clair le
code.
La différence sémantique avec un if est que l'expression ( ... ?
... : ...) "renvoie" (le terme exact est "est évaluée comme") une
valeur de type const char* qui peut ête envoyé directement dans le
flux. Par contre, l'expression if ne "renvoie" rien en elle même.
Le type renvoyé est -il tjrs char* ( cf question precedente) ?
Le type renvoyé est le type de <expression_si_vrai>.
<expression_si_faux> doit être du même type qui <expression_si_vrai>
(ou au moins castable par le compilo)
Dans ton exemple, le résultat est "cout << 3" si vrai "cout << (int) 4.568"
si faux
"heinquoi" <nospam* a écritCela semble impliquer que <expression_si_vrai> et
<expression_si_faux> soit de meme type. Est ce tjrs le cas ?
ex: cout << (b1 ? 3 : 4.568); // si b1==true alors cout << int (3) sinon
cout << float (4.568)Elle a a la fois l'avantage et le défaut d'être compact, ce qui
selon les gens (et les cas!) soit alourdit soit rend plus clair le
code.
La différence sémantique avec un if est que l'expression ( ... ?
... : ...) "renvoie" (le terme exact est "est évaluée comme") une
valeur de type const char* qui peut ête envoyé directement dans le
flux. Par contre, l'expression if ne "renvoie" rien en elle même.
Le type renvoyé est -il tjrs char* ( cf question precedente) ?
Le type renvoyé est le type de <expression_si_vrai>.
<expression_si_faux> doit être du même type qui <expression_si_vrai>
(ou au moins castable par le compilo)
Dans ton exemple, le résultat est "cout << 3" si vrai "cout << (int) 4.568"
si faux