Welcome to C! Tiny suggestion to add to other comments: value
is already Boolean, so there's no need to write if (value == 1)
, you can just write if (value)
. Similarly, following @chamaeleon@kbin.social's suggestion of using the ternary operator, you can write return value ? "Yes" : "No";
.
C Programming Language
Welcome to the C community!
C is quirky, flawed, and an enormous success.
... When I read commentary about suggestions for where C should go, I often think back and give thanks that it wasn't developed under the advice of a worldwide crowd.
... The only way to learn a new programming language is by writing programs in it.
- irc: #c
๐ https://en.cppreference.com/w/c
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).
Congrats on your first program!
Well done. Keep on practising and improving and your life will change. C is love, C is life.
Your code raised a question that never came to my mind before. What actually happens here? To my understanding there are two strings "Yes" and "No" within the scope of this function. But are they accessible from outside of the function?
After looking it up, it appears to be totally valid: Lifetime of a string literal in C That's probably what's implied in the comment line directly above the if.
I thought it would be "hello world".