我的 do/while 循环不起作用

use*_*700 -2 java do-while

所以我有一个 do-while 循环,它应该读取用户输入。如果用户输入 J 那么它应该要求用户输入 2 个数字来计算它们,但是如果用户输入 N 那么它应该停止循环。知道为什么它不起作用吗?

if (input.equalsIgnoreCase("J")) {
    do
    {
        status=true;
    }
    while (status);{
        if (input.equalsIgnoreCase("N"))
            status = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

完整代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        boolean status=true;
        while (status){
            Scanner minScanner1 = new Scanner(System.in);  // mina scanners som tar in userinput
            Scanner scanner2 = new Scanner(System.in);
            System.out.println("Skriv in ditt nummer en och en :\n"); //obivous

            double nr1 = minScanner1.nextDouble(); // int nr 1 lagrar det userinput skriver in på scanner 1
            double nr2 = minScanner1.nextDouble();


            System.out.println("välj vad du vill göra: ");

            double svar =0;

            String användarInlägg = scanner2.nextLine(); // själva miniräknaren
            if(användarInlägg.equalsIgnoreCase("+")) { 
                svar = nr1 + nr2;
            }
            else if(användarInlägg.equalsIgnoreCase("-")) {
                svar = nr1 - nr2;
            }
            else if(användarInlägg.equalsIgnoreCase("*")) {
                svar = nr1 * nr2;
            }
            else if(användarInlägg.equalsIgnoreCase("/")) {
                svar = nr1 / nr2;
            }
            System.out.printf("= %.2f\n ", svar);
            System.out.println("Skriv in J för att fortsätta N för att sluta: \n"); 

            Scanner scanner3 = new Scanner(System.in);
            String input=scanner3.nextLine();

            do
            {
                if (input.equalsIgnoreCase("N")) status = false;
                else if (input.equalsIgnoreCase("J")) status =true;
            } while(true);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

A4L*_*A4L 5

这不是 do/while 循环的正确语法

它一定要是

    do {
        // body
    } while(condition);
Run Code Online (Sandbox Code Playgroud)

while 循环看起来像这样

    while(condition) {
        // body
    }
Run Code Online (Sandbox Code Playgroud)

您必须将代码更改为以下内容:

    String input;
    boolean status;
    do {
        input = // read input
        status = input.equalsIgnoreCase("J");
    } while(status);
Run Code Online (Sandbox Code Playgroud)