I’ve noticed something about my coding that is slightly undefined. Say we have a two dimension array, a matrix or a table and we are looking through it to check if a property is true for every row or nested dimension.
Say I have a boolean flag that is to be used to check if a property is true or false. My options are to:
- Initialize it to true and check each cell until proven false. This
gives it a wrong name until the code
is completely executed. - Start on false and check each row until proven true. Only if all rows are true will the data be correct. What is the cleanest way to do this, without a counter?
I’ve always done 1 without thinking but today it got me wondering. What about 2?
They actually both amount to the same thing and since you say “check if a property is true for every row or nested dimension”, I believe the first method is easier to read and perhaps slightly faster.
You shouldn’t try to read the value of the flag until the code is completely executed anyway, because the check isn’t finished. If you’re running asynchronous code, you should guard against accessing the value while it is unstable.
Both methods “give a wrong name” until the code is executed. 1 gives false positives and 2 gives false negatives. I’m not sure what you’re trying to avoid by saying this – if you can get the “correct” value before fully running your code, you didn’t have run your code in the first place.
How to implement each without a counter (if you don’t have a
foreachsyntax in your language, use the appropriateenumerator->nextloop syntax):1:
2: