Find the product of digits at odd/even places
Program structure

Separate I/O from the calculation and keep the main function short:

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int dist = sc.nextInt();
    if (dist &lt; 0) {
        // ... report error and terminate  program.

    }

    int bonus = calculateBonus(dist);
    System.out.println("The bonus is " + bonus);
}


That makes the program structure clearer, makes the functions reusable, and allows to add test cases easily.

Handle invalid input

By convention, error messages are written to the standard error output, and a nonzero exit code indicates an abnormal program termination. Instead of "Invalid Input" I suggest to print a message indicating the correct usage:

if (dist &lt; 0) {
    System.err.printf("Input must be a non-negative integer.");
    System.exit(1);
}


Miscellaneous

Inconsistent white space here:

int bonus=0;
int prodOdd = 1;


It can be difficult to choose a good variable name, but I am sure that you'll find something better here:

int lol = counter;


Declare variables at the nearest scope where they are used. As an example, currDigit is only used inside the for-loop:

for (int i = 0; i &lt; lol; i++) {
    int currDigit = dist % 10;
    // ...
}


Simplifiying the program

The calculation of

    if (prodOdd == prodEven)
        bonus = 2 * prodOdd;
    else
        bonus = prodOdd &gt; prodEven ? prodOdd : prodEven;


does not change if we exchange the even and the odd product. Therefore it does not matter if we count even and odd position from the most significant (decimal) digit or from the least significant digit.

As a consequence, we can process the digits starting with the least significant one, and it is not necessary to calculate the number of digits beforehand.

Instead of the counter, a boolean variable is sufficient to keep track of even and odd positions. 

So the countDigits() function is obsolete, and calculateBonus() could be implemented like this:

public static int calculateBonus(int dist) {
    int prodOdd = 1;
    int prodEven = 1;
    boolean evenPosition = true;

    while (dist &gt; 0) {
        int currDigit = dist % 10;
        if (evenPosition) {
            prodEven *= currDigit;
        } else {
            prodOdd *= currDigit;
        }

        dist /= 10;
        evenPosition = !evenPosition;
    }

    return prodOdd == prodEven ?
        2 * prodOdd :
        prodOdd &gt; prodEven ? prodOdd : prodEven;
}