diff options
author | Oskar <[email protected]> | 2024-08-20 13:51:53 +0200 |
---|---|---|
committer | Oskar <[email protected]> | 2024-08-20 13:51:53 +0200 |
commit | 12dda8d5244e86096a5ea56014073dd1892cc409 (patch) | |
tree | ffaf835edd33da23a58405db5e733ebfc71e5a5e /4p22.cpp | |
parent | d0c6ac2b68380020d76d7f938307e056a25eb5f5 (diff) |
more
Diffstat (limited to '4p22.cpp')
-rw-r--r-- | 4p22.cpp | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/4p22.cpp b/4p22.cpp new file mode 100644 index 0000000..29475da --- /dev/null +++ b/4p22.cpp @@ -0,0 +1,73 @@ +#include <iostream> + +/* + * + * 4.22 + * + * + */ + +void cond_op_grade() { + + std::string finalgrade; + unsigned int grade = 0; + if(std::cin >> grade) { + if(grade > 100) { return; } + + } else { + return; + } + + finalgrade = (grade >= 90) ? "high pass" : (grade >= 75) ? "pass" : (grade >= 60) ? "low pass" : "fail"; + std::cout << finalgrade << std::endl; +} + +void if_grade() { + + std::string finalgrade; + unsigned int grade = 0; + if(std::cin >> grade) { + if(grade > 100) { return; } + + } else { + return; + } + + if(grade >= 90) { + finalgrade = "high pass"; + } else if(grade >= 75) { + finalgrade = "pass"; + } else if(grade >= 60) { + finalgrade = "low pass"; + } else { + finalgrade = "fail"; + } + + std::cout << finalgrade << std::endl; +} + +int main () { + + /* + Not really sure which of these is the 'better' alternative + i do like how conditional operator is very terse and can + do the same thing in a very small line. But it could also + be a bit more difficult to read and understand. It could + simply be a skill issue whether it's hard to read or not + but i am not really sure. + + I do think the if statement is a bit easier to read because + it is simply just so common and widely used that you really + just default to it. I know that all operators and if + statements have their best moments to be used but i can't + really judge which one would be best for this case. + + I guess the best use for the the conditional operator + is best when we want to do a simple if statement where there + are just two simple outcomes + */ + + cond_op_grade(); + if_grade(); + return 0; +} |