473,386 Members | 1,819 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

how does ?: work

Tom
Hi

Is this a conditional ? what is the structure of the statement?
ch Tom
Nov 16 '05 #1
7 1814
Yep, it's a conditional.

test ? true_outcome : false_outcome;

So, say you want to add one if the value is less than 5, zero
otherwise:

value = value + (value < 5) ? 1 : 0;

Peace,
--Carl

Nov 16 '05 #2
Tom wrote:
Hi

Is this a conditional ? what is the structure of the statement?
ch Tom

string path = pathvar.trim() == string.empty ? defaultpath : pathvar;

if pathvar.trim returns string.empty then path will be set to
defaultpath, otherwise pathvar.

HTH
JB
Nov 16 '05 #3
Watch for word wrap on the link:

http://msdn.microsoft.com/library/de...aloperator.asp
Nov 16 '05 #4
hi
The conditional operator (?:) returns one of two values depending on the
value of a Boolean expression.

syntax is
cond-expr ? expr1 : expr2
cond-expr is An expression of type bool.
expr1 An expression.
expr2 An expression.
Remarks
If cond-expr is true, expr1 is evaluated and becomes the result;
if cond-expr is false, expr2 is evaluated and becomes the result.
Only one of expr1 and expr2 is ever evaluated.
regards
Ansil
Trivandrum
"Tom" wrote:
Hi

Is this a conditional ? what is the structure of the statement?
ch Tom

Nov 16 '05 #5
"Tom" <To**********@hotmail.com> wrote in news:ON**************@TK2MSFTNGP11.phx.gbl:
Hi

Is this a conditional ? what is the structure of the statement?


Tom,

http://msdn.microsoft.com/library/de...alOperator.asp

or

http://tinyurl.com/46weh

--
Hope this helps.

Chris.
-------------
C.R. Timmons Consulting, Inc.
http://www.crtimmonsinc.com/
Nov 16 '05 #6
Hello
The + operator takes precedence over the ?: operator.
It shoulr be written
value = value + (value < 5? 1 : 0);

Best regards,
Sherif
<ca***********@gmail.com> wrote in message
news:11**********************@c13g2000cwb.googlegr oups.com...
Yep, it's a conditional.

test ? true_outcome : false_outcome;

So, say you want to add one if the value is less than 5, zero
otherwise:

value = value + (value < 5) ? 1 : 0;

Peace,
--Carl

Nov 16 '05 #7
"Tom" <To**********@hotmail.com> wrote in message
news:ON**************@TK2MSFTNGP11.phx.gbl...
Hi

Is this a conditional ? what is the structure of the statement?


Lots of good answers already, but I'll add my 2 cents: ?: is nothing but
shorthand for a longer construction. A tediously common pattern in almost
any programming context is to have to write something of the form:

if(condition)
variable = value1;
else
variable = value2;

Kernighan and Ritchie, when they cooked up C many years ago, recognized that
the point of that code, its underlying semantics, is to assign to the
variable. But the assignment has become disguised by wrapping it in an if
statement. Recognizing that this is such a common pattern they cooked up
the ?: operator to allow developers to make the intention of their code more
explicit. Thus, instead of hiding the assignment inside of an if(), you
hide the if() inside of the assignment:

variable = condition ? value1 : value2;

Not only can this make your code (slightly) more self-documenting, if the
actual variable name in question is something long and complicated, the ?:
version can certainly be easier to type. Either way--written as an if()
block or as an assignment--both pieces of code should compile to exactly the
same machine code (or IL or whatever).

The drawback, of course, is that this solution is not very scalable to
situations where you have more than a boolean choice to make. People who
favor the use of ?: can be tempted to nest them, as in:

variable = condition1?value1:(condition2?value2:value3);

but this sort of thing quickly--no, immediately--becomes difficult to read,
understand, debug, and maintain. Personally, I don't use ?: very much
myself, and generally only in the context of parameters to function calls;
if I have a lengthy function call, something like:

function(paramter1, parameter2, paramater3,
"some long string",
parameter4, parameter5);

and then I find that in some circumstances parameter5 needs to have one or
the other value, then it's much easier to write:

function(paramter1, parameter2, paramater3,
"some long string",
parameter4,
condition?value1:value2);

than it is to replicate the entire function call inside an if(condition)
block. It's also easier to maintain if I end up changing the values of some
of the other parameters. At any rate, when used wisely ?: can make your
code shorter, easier to read, and easier to maintain. Used unwisely, it can
turn otherwise clean code into an obfuscated mess.
Nov 16 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
by: Jonas | last post by:
This works fine in Win XP but does not work at all in Win 98. Private WithEvents objIExplorer As InternetExplorer I have to do it like this to get it to work in Win 98 Dim objIExplorer As...
3
by: Julian | last post by:
Hi I am trying to update a date field in my table but some how this simple code does not work, I know the select work because if I write the fields, it will show the data from the table but why...
5
by: me | last post by:
I have a Class Library that contains a Form and several helper classes. A thread gets created that performs processing of data behind the scenes and the Form never gets displayed (it is for debug...
22
by: Robert Bralic | last post by:
CAN anybody tell me any address where I can download some small(1000-2000) lines C++ proghram source. Or send me ,a small(1000-2000) lines C++ program source that I can compille with gpp under...
12
by: Frank Hauptlorenz | last post by:
Hello Out there! I have a DB2 V7.2 Database (Fix11) on Win 2000 Professional. It was before a NT 4 based Domain - now it is a Win 2000 Domain. The database server is a domain member. Now...
0
by: Jarod_24 | last post by:
How does tabindex work in ASP .net pages I dosen't seem to work quite like in regular forms. and there isn't any TabStop property either. 1 .How do you prevent a control form beign "tabbed"....
14
by: Anoop | last post by:
Hi, I am new to this newsgroup and need help in the following questions. 1. I am workin' on a GUI application. Does C# provides Layout Managers the way Java does to design GUI? I know that it...
89
by: Cuthbert | last post by:
After compiling the source code with gcc v.4.1.1, I got a warning message: "/tmp/ccixzSIL.o: In function 'main';ex.c: (.text+0x9a): warning: the 'gets' function is dangerous and should not be...
14
by: webEater | last post by:
I have a problem, it's not browser specific, and I don't get a solution. I have an (X)HTML document, I show you a part of it: .... <!--<div class="pad">--> <div id="eventImages"><img src=""...
1
by: =?ISO-8859-1?Q?Lasse_V=E5gs=E6ther_Karlsen?= | last post by:
I get the above error in some of the ASP.NET web applications on a server, and I need some help figuring out how to deal with it. This is a rather long post, and I hope I have enough details that...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.