したがって、ユーザー入力を読み取ることになっている do-while ループがあります。ユーザーが J と入力した場合、2 つの数値を入力して計算するようユーザーに要求する必要がありますが、ユーザーが N と入力した場合は、ループを停止する必要があります。なぜそれが機能しないのですか?
if (input.equalsIgnoreCase("J")) {
do
{
status=true;
}
while (status);{
if (input.equalsIgnoreCase("N"))
status = false;
}
}
完全なコード:
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);
}
}
}