Hello, I am fairly new to the Java Programming Language and have a question regarding a practice problem that I have completed. The problem that I finished is as follows.

Given 2 positive int values, return the larger value that is in the range 10..20 inclusive, or return 0 if neither is in that range.

max1020(11, 19) ¿ 19

max1020(19, 11) ¿ 19

max1020(11, 9) ¿ 11

Below is the code that I have written followed by one of the solutions that the website provided.

My Code:

public int max1020(int a, int b) {

if ((a >= 10) && (a <= 20)){

if ((b >= 10) && (b <= 20)){

if (a > b){

return a;

}

else return b;

}

else return a;

}

else {

if ((b >= 10) && (b <= 20)){

return b;

}

return 0;

}

}

Solution Code:

public int max1020(int a, int b) {

// First make it so the bigger value is in a

if (b > a) {

int temp = a;

a = b;

b = temp;

}

// Knowing a is bigger, just check a first

if (a >= 10 && a <= 20) return a;

if (b >= 10 && b <= 20) return b;

return 0;

}

The question that I would like to ask is why does the solution code use the first if statement? I understand that the comment says the statement is checking for the larger value, but do not understand how it does that.

Thank you for your help.

Given 2 positive int values, return the larger value that is in the range 10..20 inclusive, or return 0 if neither is in that range.

max1020(11, 19) ¿ 19

max1020(19, 11) ¿ 19

max1020(11, 9) ¿ 11

Below is the code that I have written followed by one of the solutions that the website provided.

My Code:

public int max1020(int a, int b) {

if ((a >= 10) && (a <= 20)){

if ((b >= 10) && (b <= 20)){

if (a > b){

return a;

}

else return b;

}

else return a;

}

else {

if ((b >= 10) && (b <= 20)){

return b;

}

return 0;

}

}

Solution Code:

public int max1020(int a, int b) {

// First make it so the bigger value is in a

if (b > a) {

int temp = a;

a = b;

b = temp;

}

// Knowing a is bigger, just check a first

if (a >= 10 && a <= 20) return a;

if (b >= 10 && b <= 20) return b;

return 0;

}

The question that I would like to ask is why does the solution code use the first if statement? I understand that the comment says the statement is checking for the larger value, but do not understand how it does that.

Thank you for your help.

```
import java.util.Scanner;
import java.lang.Math.*;
class ReturnLargest
{
public static void main (String [] args)
{
Scanner keyIn = new Scanner(System.in);
int numA = 0;
int numB = 0;
int largest =0;
int smallest = 0;
System.out.print("Enter an integer: \n");
numA = keyIn.nextInt( );
System.out.print("Enter an integer: \n");
numB = keyIn.nextInt( );
largest = Math.max(numA,numB);
smallest = Math.min(numA,numB);
if((largest>=10&&largest<=20)||(smallest>=10&&smallest<=20)){System.out.println("\n"+largest);}else{System.out.println("\n0");}
}
}
```

re: Your comment : if you mean this : if (b > a) {

Both ints need to be checked for range, and you then need to know which is the largest.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.

// First make it so the bigger value is in a

if (b > a) {

int temp = a;

a = b;

b = temp;

}

It checks a and b. If b is bigger than a it swaps the values in a and b, so that a is now bigger. So at the end of this clause, a is always bigger than b.

Then, in the next part, it only has to check for range.