2016-04-28 11 views
0

ここに問題があります。ユーザーが停止するまでプログラムがループするようにしたい。私は、ユーザがそれが例えば「はい」を入力し続けるかどうか、またはそれが例えば停止することを望む場合は「停止」とタイプすることを希望するかどうかをユーザに知らせたい。これらはオブジェクトであるため私の計算機でループを維持するにはどうすればいいですか?

import java.util.Scanner; 

public class Calculator2 { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 

     Scanner scan = new Scanner(System.in); 
     String userInput ; 


     while(true){ 
     calculator(); 
     System.out.println("would you like to make another calculation"); 
     userInput = scan.nextLine(); 
     if(userInput != "no"){ 
      calculator(); 
     }else{ 
      System.exit(0); 
     } 

     } 

     } 






    public static void calculator() 
    { 


     // TODO code application logic here 

     Scanner user = new Scanner(System.in); 
     System.out.println("Enter "); 

     double value1 = user.nextDouble(); 
     String op = user.next(); 
     double value2 = user.nextDouble(); 

     if (op.equals("+")){ 
      Addition(value1,value2); 

     }if (op.equals("-")){ 
      Subtraction(value1,value2); 

     }if(op.equals("/")){ 
      Division(value1,value2); 

     }if(op.equals("*")){ 
      Multiplication(value1,value2); 

     }if(op.equals("^")){ 
      Exponent(value1,value2); 

     }if(op.equals("log")){ 
      NaturalLog(value1); 
     }else{ 

     } 



    } 
    public static void Addition (double value1, double value2){ 
     double Sum= value1 + value2; 
     System.out.println(Sum); 
    } 
    public static void Subtraction (double value1 , double value2){ 
     double diff = value1 - value2; 
     System.out.println(diff); 
    } 
    public static void Division(double value1 , double value2){ 
     double div = value1/value2; 
     System.out.println(div); 
    } 
    public static void Multiplication(double value1, double value2){ 
     double mult = value1 * value2; 
     System.out.println(mult); 
    } 
    public static void Exponent(double value1 , double value2){ 
     double exp = Math.pow(value1, value2); 
     System.out.println(exp); 
    } 
    public static void NaturalLog(double value1){ 
     double logs = Math.log(value1); 
     System.out.println(logs); 
    } 


} 
+0

文字列を使用して評価されていない "==" または "!="( 'USERINPUT!= "いいえ"'行で。興味深いことに、適切 '使用。他の場所ではequals() 'があります。 – KevinO

答えて

1
if(!"no".equals(userInput)){ 
     calculator(); 
    }else{ 
     System.exit(0); 
    } 

文字列(使用.equalsを比較)

0

変化

if(userInput != "no"){ 

if(!userInput.equals("no")){ 

の文字列は、.equals()メソッドによって比較されなければなりません。 ==メソッドは、値の代わりにメモリの場所を比較します。

+0

私に説明してくれてありがとう。 – adonis

関連する問題