Having Problems With do...while Loop

I have a little problem with this do while loop; when I run the program it is working, at least partially, what I mean is first you need to make a choice for convertion from C to F or from F to C and after you enter the values the program stops what I want to do is to keep asking for values until you enter 3. I tried to do it with a do while loop but it is not working so if someone has any ideas I would be grateful. Here is the code:

import java.util.Scanner;

public class DegreesInConversion2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Conversion table: ");
        int choice = input.nextInt();
        do {
            System.out.println();
            System.out.println("1 for convertion from Celsious to Fahrenhait: ");
            System.out.println("2 for convertion froom Fahrenheit to Celsious: ");
            System.out.println("3 for Exit: ");
            System.out.println();
            System.out.println("Make a choice between 1 - 3 ");
            choice = input.nextInt();
            System.out.println();
            switch (choice) {
            case 1:
                System.out.println("Enter temperature in Celsious: ");
                double cel = input.nextDouble();
                if (cel < -273.15) {
                    System.out.println("Invalid values, please enter temperature greater than -273.15 in C:");
                } else {
                    System.out.println("You enetered " + cel + "C " + "which is " + (((cel * 9) / 5) + 32) + "F");
                }
                break;
            case 2:
                System.out.println("Enter temperature in Farhneit: ");
                double far = input.nextDouble();
                if (far < -459.67) {
                    System.out.println("Invalid values, please enter temperature greater than -459.67 in F:");
                } else {
                    System.out.println("You enetered " + far + "F " + "which is " + (((far - 32) * 5) / 9) + "C");
                }
                break;
            case 3:
                System.out.println("Goodbyu have a nice day: ");
                break;
            default:
                System.out.println("Invalid entry: Please enter a number between 1-3:");
            }
        } while (choice != 3);
    }
}   

Solution 1:

Like in your other question, here you're scanning for input before prompting the user for input.

You need to remove the second line below:

    System.out.println("Conversion table: ");
    int choice = input.nextInt();
    do

With your code as is, it outputs

Conversion table:

and then blocks waiting for input. Whereas you want it instead to continue into the while loop and output

1 for convertion from Celsious to Fahrenhait:
2 for convertion froom Fahrenheit to Celsious:
3 for Exit:

Make a choice between 1 - 3

before blocking to scan for input.

As is, if you enter any number at the first block, your program enters the loop and behaves as you wanted. So you're nearly there!