+ 15

How and Where to get more info on Java operators and learn the logic of this code. Please explain so I will

understand the logic coz it's confusing to me: Please help. 🙇🍣 public class Program { public static int f(int x){ if (x ==0) return 2; else return 1 + f (x-1); } public static void main(String[] args) { System.out.print(f(4)); } }

17th Jul 2017, 2:34 AM
CC Calvello
CC Calvello - avatar
4 Answers
+ 16
first its static function that's why we accessing it directly without object .when calling f(4) its passing argument 4 to f(int x) 1 pass: x=4 not equal to 0 so return 1+ f(4-1) in this above section its calling the function again that is what called as nesting of methods . 2 pass: x =3 not 0 so return 1+f(3-1) 3 pass: x= 2 not 0 so return 1+ f(2-1) 4 pass: x= 1 not 0 so return 1+ f(1-1) 5pass: x= 0 so its return 2 finally it return 1+1+1+1+2 =6 hope this help u :)
17th Jul 2017, 3:07 AM
Ant●ny
+ 6
It's a simple code, you have a class, and inside that class a method which receives an int as parameter, if that int (x) is zero, it returns two, else returns itself (executes the method again but with x-1) and then it adds one. The main method just calls the method and prints its return.
17th Jul 2017, 2:56 AM
voidneo
+ 5
It's a "recursion function", you can search with that keyword to learn more.
17th Jul 2017, 3:12 AM
BĂ ng Tứ Cường
BĂ ng Tứ Cường - avatar
+ 4
This is an example of recursive function in Java. A common technique to write code more easy to understand. More examples https://www.javatpoint.com/recursion-in-java
17th Jul 2017, 3:18 AM
⏩▶Clau◀âȘ
⏩▶Clau◀âȘ - avatar