Marlon, Thanks for the illustrations, and your point is taken. I'll be more conscious of these things in future.
JW Marlon Brandão de Sousa wrote:
A simple suggestion: When you have a question DO NOT ASSUME THAT everybody know what you are doing and what you need. I have read this thread and, if I didn't miss anything in your post, you didn't make references about what language you're using. This both frustrates folks who are whilling to help you and also can lead to incorrect responses, as people can guess wrong what you need and tell things that will not work. For example, in C / c++ I agree with Chris. You specify the variable you're tring to use in a switch statement and have to test it against constants to equality only. Notice that I said constants only, you can't even test it against variables. This said, if, as suggested, you try this code: #include <iostream> using namespace std; int main() { int a = 5; switch(a) { case a < 5: cout << "done"; default: cout << "none"; } return 0; } The GNU compiler returns this: test.cpp: In function `int main()': test.cpp:8: error: `a' cannot appear in a constant-expression Because a is a variable and not a constant, C and c++ dont allow you to use it in a case expression. This other code will create the same error: #include <iostream> using namespace std; int main() { int a = 5; int b = 3; switch(a) { case b: cout << "two equals"; default: cout << "none"; } return 0; } tst.cpp: In function `int main()': tst.cpp:9: error: `b' cannot appear in a constant-expression A simple read in the C or c++ specifications should let it clear. but oh! May be I used time to show you compiler errors and explaining concepts and you are even not using C or c++ ... Well, I hope this helped anyway. Marlon 2007/9/18, Jared Wright <wright.jaredm@xxxxxxxxx>:Hey all, Two in one night; I'm on a role. Anyway... I am familiar with the properties of a switch statement and how case statements work with it. My question is whether or not I can specify anything other than direct values for case statements? For an example... Let's assume I have a variable of X, and I indicate this variable in a switch statement. I want the flow of control to go one place if X is less than 10, another if X is between 10 and 100, and another if X is greater than 100. I see how to specify these inequalities using if statements, but it seems that using a switch statement with three separate cases would be a more efficient way of handling this. But all I see in the online documentation I've dug up is case statements directly defined and nothing about case statements that cover a range of potential values for the variable indicated in the switch statement. I know that I can assign multiple case statements to one block of code, but I can't imagine having to specify each potential value in the range this way. Thoughts on how I can clean this up are welcome, and as always, are appreciated. JW __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind
__________View the list's information and change your settings at //www.freelists.org/list/programmingblind