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
n1
throughn4
will be set in thefindLargest
function but only the local copies of them, the changes will never be "echoed" back to themain
function. That's your primary problem since the variables inmain
are not being set because of that.You would be better off asking for each variable in a function and returning it, then using
findLargest
correctly by getting the return value. That would go something like:You can see I've also made changes to the
findLargest
function to minimise comparisons. For example, if you get through the firstif
statement without returning, you know thatn1
is irrelevant to further comparisons since it's smaller than at least one other value.