Why Doesn't this work

  • Thread starter Thread starter Jim
  • Start date Start date
J

Jim

<code>
string x = "(813)999-9876";
string dialString = null;
for(int i = 0; i < x.Length; i++)
{
if(x != '-' || x !
= '(' || x != ')')
dialString += x;
else
MessageBox.Show(x
.ToString());
}
MessageBox.Show(dialString);
</code>
 
Jim said:
<code>
string x = "(813)999-9876";
string dialString = null;
for(int i = 0; i < x.Length; i++)
{
if(x != '-' || x !
= '(' || x != ')')
dialString += x;
else
MessageBox.Show(x
.ToString());
}
MessageBox.Show(dialString);
</code>


As your character test stands, every character, x, will evaluate to true.

I think you want your test to be:

if(x != '-' && x != '(' && x != ')')
 
...
if(x != '-' || x != '(' || x != ')')


....something not equals something OR something not equals something else,
will always return true...

Try this instead:

if(x != '-' && x != '(' && x != ')')

// Bjorn A
 
I agree with Bjorn, but I think the line
string dialString = null;
should be
String dialString = new String();
or
String dialString = "";
Bjorn Abelli said:
...
if(x != '-' || x != '(' || x != ')')


...something not equals something OR something not equals something else,
will always return true...

Try this instead:

if(x != '-' && x != '(' && x != ')')

// Bjorn A
 
Back
Top