1

だから私は動作する計算を取得し、+、-、/、*を取得し、続行するかどうかをユーザーに尋ねた後にシャットダウンします。ここでのことは、それをさまざまなクラスに分解しようとしているため、メインクラスを取得しましたオペレーターなどのコードを取得したものやクラスをユーザーに要求するだけのアプリケーションですが、どうすればよいかわかりません。さまざまなクラスを作成して、それぞれを別のクラスに入れようとしましたが、うまくいきませんでした。あなたたちは助けますか?

これが私のコードATMです

package com.example.main;

import java.util.Scanner;

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


boolean status = true;
while (status){

    Scanner minScanner = new Scanner(System.in);
    System.out.println("Skriv in ditt nummer en och en :\n");
    double nr1 = Double.parseDouble(minScanner.nextLine());
    double nr2 = Double.parseDouble(minScanner.nextLine());

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

    double svar = 0;

    String användarInlägg = minScanner.nextLine();

    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");


    String input = minScanner.nextLine();

    if (input.equalsIgnoreCase("N"))
        status = false;
    else if (input.equalsIgnoreCase("J")) {
        status = true;
            }
    }

}

}
4

2 に答える 2

0
interface MathOp {
public double doMath(double a, double b);
}

class Add implements MathOp{

  public double doMath(double a, double b) {
    return (a + b);
  }

}

class Sub implements MathOp{

  public double doMath(double a, double b) {
    return (a - b);
  }

}

// do the same for multiplication and divison

メインメソッドを持つクラスで

class SimpleCalc {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    double a,b,c;
    int choice = 0;
    a=b=c=0.0;
    while(true) {
      System.out.println("Enter two numbers");
      a = Double.parseDouble(sc.nextLine());
      b = Double.parseDouble(sc.nextLine());

      System.out.println("Enter your choice");
      System.out.println("1. Add");
      System.out.println("2. Sub");
      System.out.println("3. Mul");
      System.out.println("4. Div");

      choice = Integer.parseInt(sc.nextLine());

      switch(choice) {
       case 1 :
              c = new Add().mathOp(a,b);
              break;
       case 2 :
              c = new Sub().mathOp(a,b);
              break;
       // do the same for the other classes and use a default case.
       }

      //print the results here and then ask the user's choice

      System.out.println("would you like to continue? (Y/N)");
      if("N".equalsIgnoreCase(sc.nextLine())) { // careful with the paranthesis 
        break;
      }
    }
  }
}
于 2013-09-26T08:34:22.610 に答える