Java: Arguments as expressions

Consider this code:

var result = Math.min(1, 5);

The Math.min function is called with the arguments 1 and 5.

We found out that expressions turn into values. That is, from the Java point of view, values and expressions are something similar. Therefore, any values in the program can technically be replaced by expressions.

When calling a function, you can pass an expression into it with the argument:

var result = Math.min(1, 2 + 3);

The result will be the same as in the first example, because the expression 2 + 3 will turn into the value 5, and Math.min will be called with the arguments 1 and 5.

Moreover, you can use variables interspersed with values and other expressions:

var number = 2 + 2;
var result = Math.min(1, 1 + number);

Naturally, this works not only with numbers, but with any values and expressions. For example, with strings.

Let's summarize. Take a look at a few examples from the current lesson:

// simple calls
var result = Math.min(1, 5);       // 1

// expressions in arguments
var result = Math.min(1, 2 + 3);   // 1

// expressions with variables in arguments
var number = 2 + 2;
var result = Math.min(1, 1 + number);  // 1

Notice the similarity: in all calls, some information is passed to the function, but sometimes this is a simple, “ready” value, and sometimes a compound expression is “not ready” value (2 + 3, 1 + number, etc. ). In this case, in all examples two arguments are passed.


The function calculateDistanceBetweenTowns is available to you. It takes one argument, which must contain the names of the two cities through a hyphen. In response, it returns the distance between these cities. Here is an example of use:

var distance = calculateDistanceBetweenTowns("Lannisport-Bayasabhad");

Write a program that uses the calculateDistanceBetweenTowns function and displays the distance between cities recorded in the from and to variables.

If you got stuck and don't know what to do, you can ask a question in our huge and friendly community