Call a function from an if-statement inside a function
You're not returning anything. Capture the result of the functions and return that variable.
function printRange(rangeStart, rangeStop) { let summa = [];
for (i = rangeStart; i <= rangeStop; i++) { summa.push(i); } let result2 = summa.join(); return result2;}
function printRangeReversed(rangeStart, rangeStop) { let summa = [];
for (i = rangeStart; i >= rangeStop; i--) { summa.push(i); } let result3 = summa.join(); return result3;}
function printAnyRange(rangeStart, rangeStop) { let result = null;
if (rangeStart < rangeStop) result = printRange(rangeStart, rangeStop); else result = printRangeReversed(rangeStart, rangeStop); return result;}
console.log(printAnyRange(1,5));console.log(printAnyRange(5,1));
Calling a function inside the condition of an if statement
Will the following add obj to words (edit: assuming obj is the right type AND the statement returns a boolean value
Assuming the code can run without errors (i.e. add() returns boolean), your words.add()
method will be invoked in the if-statement.
Methods written within if-statement will be invoked and evaluated.
How to call a function with return value inside an if statement in python
You need to create a tuple of a and b then you can compare using ==
Use this,
if (a,b)==hi() : hello(a)
Here is the full code which prints asd
def hi():
return 10,20
def hello(a):
if a:
print "asd"
a,b = 10,20
if (a,b)==hi() : hello(a)
Any way to put an if statement in the function call argument?
You can if you don't mind some ugliness... The * syntax turns a list of values into parameters, so you could use:
foo(*[a] if a > b else [])
Whether you should is something else :-)
Running a function inside of an if statement
Some general observations:
- Functions, like any other object, need to be defined before they are
referenced/used. You aren't violating this, but you will be if you
fill in the rest of your while-loop. Ideally, you'll want a main
entry point for your program, so that it's clear in what order things
are being executed, and your functions are guaranteed to be defined
by the time flow-of-execution reaches the lines on which your functions are called. - It would make sense to define one function for each corresponding
command type (except for quit). You were on the right track here. - A couple questionable/redundant instances of f-strings (
f"{code}"
almost certainly doesn't do what you think it should.) - Prefer
snake_case
overcamelCase
when writing Python source code. - Your
V
command will terminate the loop (and the program)
prematurely. What if the user wants to print all courses, then a
description?
Here are my suggestions incarnate:
def get_courses():
courses = {}
with open("assignments/assignment-19/courses.txt", "r") as file:
for line in file:
data = line.split(":")
code = data[0].strip()
class_name = data[1].strip()
courses[code] = class_name
return courses
def display_courses(courses):
for key, value in courses.items():
print(f"{key}: {value}")
def display_description(courses):
code = input("Enter course code: ").strip().lower()
if code in courses:
print(courses[code])
else:
print(f"Sorry, \"{code}\" is not in our system.")
def main():
courses = get_courses()
while True:
command = input("(V)iew, (L)ookup or (Q)uit: ").lower()
if command == "v":
display_courses(courses)
elif command == "l":
display_description(courses)
elif commany == "q":
print("Goodbye!")
break
else:
print("Invalid command.")
# 'main' ends here
main()
Is it correct to execute a function inside IF else statement?
There is no wrong in executing a function inside if conditional statement.
For such case you can use ternary operator
var i=-1; // Note var key word & initialized with some value
isCheck() === false ? (i=0):(i=someOtherVal)
is it bad practice to call a function from within an if condition?
There's nothing wrong with it. Though many C functions involve checking the result of parameters rather than the returned value and then you have no other option but to call the function on a line of its own.
Also, this is a common scenario:
result_t result = func();
if(result == ERR1)
...
else if(result == ERR2)
...
Here you can obviously not write
if(func() == ERR1)
...
else if(func() == ERR2)
...
Because then you end up calling the function twice, which is inefficient, but could also give different results.
As for using return from a function as a way to quickly stop executing and go directly to the error handler, it's actually likely the best way of doing so in C. Other alternatives are using messy boolean flags in the loop, or the "on error goto" pattern (which is usually OK but comes with the mandatory, tiresome "goto considered harmful" debate).
As for picking up bad habits: not using const correctness of read-only parameters is a bad habit.
Related Topics
Break the Loop of an Array Looping Function (Map, Foreach, etc.)
Get Directory of a File Name in JavaScript
Open File Explorer Window from JavaScript
Save State When Refresh Page - Reactjs
Browserify :- Uncaught Typeerror: Fs.Readfilesync Is Not a Function
How to Find Matching Values in Two Arrays
How Exactly Use and Update the Global Variables in React-Native
Javascript Return True or Return False When and How to Use It
Javascript: Search String in Array Then Count Occurrences
How to Loop Through Json Array and Get Specific Values
Filter/Search from the Drop-Down List of Options Using Angular
How to Update a Variable After Button Click
React Wait Until Set State in the Same Function
How to Force Clients to Refresh JavaScript Files