I started studying for an exam and doing some practice programs with methods, and my mind is coming to a blank currently. I would like to know how I can initialize n1, n2, n3, and n4. I set them to 0 but the return statement returned only 0s.
public class LargestOfIntegers2
{
public static int findLargest(int n1, int n2, int n3, int n4)
{
Scanner scan = new Scanner(System.in);
System.out.print("Enter the first integer --> ");
n1 = scan.nextInt();
System.out.print("Enter the second integer --> ");
n2 = scan.nextInt();
System.out.print("Enter the third integer --> ");
n3 = scan.nextInt();
System.out.print("Enter the fourth integer --> ");
n4 = scan.nextInt();
if(n1>n2 && n1 > n3 && n1 > n4)
return n1;
else if(n2 > n1 && n2 > n3 && n2 > n4)
return n2;
else if(n3>n1 && n3>n2 && n3>n4)
return n3;
else
return n4;
}
public static void main(String[] args) {
int n1, n2, n3, n4;
findLargest(n1, n2, n3, n4);
if(n1>n2 && n1 > n3 && n1 > n4)
System.out.println("Out of the numbers " + n1 + ", " + n2 + ", " + n3 + ", " + n4 + ", the largest integer is " + n1);
else if(n2 > n1 && n2 > n3 && n2 > n4)
System.out.println("Out of the numbers " + n1 + ", " + n2 + ", " + n3 + ", " + n4 + ", the largest integer is " + n2);
else if(n3>n1 && n3>n2 && n3>n4)
System.out.println("Out of the numbers " + n1 + ", " + n2 + ", " + n3 + ", " + n4 + ", the largest integer is " + n3);
else
System.out.println("Out of the numbers " + n1 + ", " + n2 + ", " + n3 + ", " + n4 + ", the largest integer is " + n4);
}
}
The variables
n1throughn4will be set in thefindLargestfunction but only the local copies of them, the changes will never be "echoed" back to themainfunction. That's your primary problem since the variables inmainare not being set because of that.You would be better off asking for each variable in a function and returning it, then using
findLargestcorrectly by getting the return value. That would go something like:You can see I've also made changes to the
findLargestfunction to minimise comparisons. For example, if you get through the firstifstatement without returning, you know thatn1is irrelevant to further comparisons since it's smaller than at least one other value.