- Home /
Short if statement
Hello guys, how can I shorten this if statement:
if(1.7f >= angle && angle >= 1.4f || 8f >= angle && angle >= 7.7f || 14.3f >= angle && angle >= 14f || 20.6f >= angle && angle >= 20.3f || 26.9f >= angle && angle >= 26.6f || 33.2f >= angle && angle >= 32.9f || 39.5 >= angle && angle >= 39.2f || 45.8 >= angle && angle >= 45.5f)
Thanks in advance!
Answer by allenallenallen · Aug 09, 2015 at 03:40 PM
The fact that you need it all to be in an if statement means you can't really simplify it. What you CAN do though is format it to be easier to read like so:
if(1.7f >= angle && angle >= 1.4f ||
8f >= angle && angle >= 7.7f ||
14.3f >= angle && angle >= 14f ||
20.6f >= angle && angle >= 20.3f ||
26.9f >= angle && angle >= 26.6f ||
33.2f >= angle && angle >= 32.9f ||
39.5 >= angle && angle >= 39.2f ||
45.8 >= angle && angle >= 45.5f){
}
Thanks for the quick response. But isn't it possible with an algorithm because the difference is every single time 6.3 => 45.8 - 39.5 = 6.3 39.5 - 33.2 = 6.3 ...
Ah, I see what you meant. Here's the C# version of the algorithm.
bool angleCheck(float angle){
float start = 1.4f;
float difference = 6.3f;
for(int i = 0; i < 8; i++){
if (start + 0.3f >= angle && angle >= start){
return true;
}
start += difference;
}
return false;
}
And the if statement is shortened to this:
if (angleCheck(angle)){
}
Answer by sed · Aug 09, 2015 at 04:58 PM
Instead of looping you could use a modulo statement. This could be useful if the list you've provided is not complete (ie. it'd have to go on and on)
bool angleCheck(float angle){
float start = 1.4f;
float difference = 6.3f;
angle = angle % difference;
if (start + 0.3f >= angle && angle >= start){
return true;
}
return false;
}
Never thought of it that way. I like it. A good solution for an infinite range test.
Your answer
Follow this Question
Related Questions
How are the if's in a GUI.Toolbar handled? 1 Answer
C Sharp int equal 1 or <4 && >15 1 Answer
If statement is not working properly 1 Answer
Problem with IF with 2 outputs. 1 Answer
GUI box open on MouseButtonDown 1 Answer