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.

  • chamaeleon@kbin.social
    link
    fedilink
    arrow-up
    3
    ·
    2 years ago

    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).