I was looking over the first kata i did on codewars, and I thought it would be fun to try and solve it in C. The object was to return a string based on a boolean input. it took a lot of trial and error, googling, chat gippity, but I eventually got it to work. I am still focused on learning python, but I’ve had it in my mind that I should branch out once I’ve reached a competence plateau in python. I’m nowhere near that plateau yet, but this seemed simple enough to warrant the necessary investment in time to accomplish it.
// C:
#include <stdbool.h>
// FIRST EVER C PROGRAM
const char *bool_to_word (bool value){
// you can return a static/global string or a string literal
if (value == 1){
return "Yes";
}
else{
return "No";
}
}
I realize this is pretty trivial, but still, it’s a milestone for me and I wanted to do my part to get the ball rolling on this community.
For these kinds of expressions, I really like to use the ternary operator. I find that more readable. An if statement with a condition and two simple possible return values like your code can be written as
return (value == 1) ? “Yes” : “No”;
The return keyword is not part of the ternary operator. The definition is “<condition> ? <value if true> : <value if false>”.
As the operator is an expression, the result of it can be assigned to a variable of course. But in your code example there is no need for a local variable to hold the result so it can just be returned.
If the expressions for the condition, or true or false results get too complicated I’ll switch to if/else for readability (the question mark or the colon might get harder to spot).