-4

たとえば、彼らが * を選択した場合、間違った演算子を選択した場合はもう一度やり直してくださいが、現時点では、間違った演算子を選択した場合はループしているだけで、正しい演算子を選択した場合はプログラムを終了する必要があります。それを理解する

私のコードは次のとおりです

 import java.util.Scanner;


   public class Uppgift5 {
public static void main (String[] args){

    int tal1, tal2;
    int sum = 0;
    int sub=0;
    String operator;


    Scanner input = new Scanner (System.in);
    Scanner input2 = new Scanner (System.in);

    System.out.println("write in first digit");
    tal1 = input.nextInt();


    System.out.println("Write in 2nd digit ");
    tal2 = input.nextInt();

    System.out.println("Enter + to add and - subtract ");
    operator = input2.nextLine();


    while (operator.equals("-") || operator.equals("+")|| operator.equals("*")  || operator.equals(("/")) ){

    if (operator.equals("+")){
        sum = tal1+tal2;
        System.out.println("the sum is " + sum);
    }

    else if (operator.equals("-")){
        sub = tal1-tal2;
        System.out.println("the subtracted value  is " + sub);

    }
    if (operator.equals("*") || operator.equals("/")){ 
    System.out.println("You have put in the wrong operator, your options are + or -");
}

}

} }

4

4 に答える 4

2

あなたの問題はここにあります:

operator = input2.nextLine();
while (operator.equals("-") || operator.equals("+")|| operator.equals("*")  || operator.equals(("/")) )

であると仮定しoperatorます+。の値はループoperator内で変化しないため、常に になり、無限ループになります。whileoperator+

于 2013-11-02T21:53:44.910 に答える
0

あなたのオペレーターは決して変わりません。そのため、ループが終了することはありません。whileの代わりにifを使用する必要があります

于 2013-11-02T21:53:07.013 に答える
0

whileループを使用する代わりに、入力から読み取る前に開始し、 がorでない場合にのみループバックするdoループを使用します。理想的には、計算を試みる前にループの最後に来る必要があります。operatoroperator+-whiledo

于 2013-11-02T21:53:40.083 に答える
0

もちろん、コードが終了することはありません...停止条件がないためです。また、ループ条件が正しくありません。演算子がこれらの値の 1 つである限り、ループが実行されます。また、ループ内で入力を要求することはありません。以下のコードは機能するはずです。

import java.util.Scanner;


public class tt {
public static void main (String[] args){

int tal1, tal2;
int sum = 0;
int sub=0;
String operator = "";


Scanner input = new Scanner (System.in);
Scanner input2 = new Scanner (System.in);

System.out.println("write in first digit");
tal1 = input.nextInt();


System.out.println("Write in 2nd digit ");
tal2 = input.nextInt();

System.out.println("Enter + to add and - subtract ");

while (true){

operator = input2.nextLine();
if (operator.equals("+")){
    sum = tal1+tal2;
    System.out.println("the sum is " + sum);
}
else if (operator.equals("-")){
    sub = tal1-tal2;
    System.out.println("the subtracted value  is " + sub);

}

if (operator.equals("*") || operator.equals("/")){
    System.out.println("You have put in the wrong operator, your options are + or -");
    break;
  }
  }
 }
}
于 2013-11-02T22:01:11.903 に答える