Java calculator

I'm really new to Java programming, and I have a task for my AP computer programming class, so bear with me. I have to figure out how to multiply two fractions together. I was wondering if there is a way to declare a variable inside a method and use it outside that method (my while loop in intro method). Thank you, I hope this does not bother!

import java.util.Scanner;
import java.util.StringTokenizer;

public class javatest3 {
    static int num1 = 0;
    static int num2 = 0;
    static int denom1 = 0;
    static int denom2 = 0;
    public static void main(String[] args){
    System.out.println("Enter an expression (or \"quit\"): "); //prompts user for input
    intro();

}
public static void intro(){
    Scanner input = new Scanner(System.in); 
    String user= input.nextLine();
    while (!user.equals("quit") & input.hasNextLine()){ //processes code when user input does not equal quit
        StringTokenizer chunks = new StringTokenizer(user, " "); //parses by white space
        String fraction1 = chunks.nextToken(); //first fraction
        String operand = chunks.nextToken(); //operator 
        String fraction2 = chunks.nextToken(); //second fraction
        System.out.println("Fraction 1: " + fraction1); 
        System.out.println("Operation: " + operand); 
        System.out.println("Fraction 2: " + fraction2); 
        System.out.println("Enter an expression (or \"quit\"): "); //prompts user for more input


    while (user.contains("*")){
        parse(fraction1);
        parse(fraction2);
        System.out.println("hi");
        int num = num1 * num2;
        int denom = denom1 * denom2;
        System.out.println(num + "/" + denom);
        user = input.next();

    }

    }
}

public static void parse(String fraction) {
    if (fraction.contains("_")){
        StringTokenizer mixed = new StringTokenizer(fraction, "_");
        int wholeNumber = Integer.parseInt(mixed.nextToken());
        System.out.println(wholeNumber);
        String frac = mixed.nextToken();
        System.out.println(frac);
        StringTokenizer parseFraction = new StringTokenizer(frac, "/"); //parses by forward slash
        int num = Integer.parseInt(parseFraction.nextToken());  
        System.out.println(num);
        int denom = Integer.parseInt(parseFraction.nextToken());
        System.out.println(denom);




    }
    else if (!fraction.contains("_") && fraction.contains("/")){
        StringTokenizer parseFraction = new StringTokenizer(fraction, "/"); //parses by forward slash
        int num = Integer.parseInt(parseFraction.nextToken());  
        System.out.println(num);
        int denom = Integer.parseInt(parseFraction.nextToken());
        System.out.println(denom);



    }else{ 
        StringTokenizer whiteSpace = new StringTokenizer(fraction, " "); 
        int num = Integer.parseInt(whiteSpace.nextToken());  
        System.out.println(num);
}

}}

+4
source share
7 answers

"". , ... . , , , - - .

№1:

, , , ​​ . , :

void foo () {
    Integer a = 1;
    Integer b = 2;
    bar(a,b);
    System.out.println("a = " + a + ", b = " + b);
}

void bar (Integer a, Integer b) {
    a = 4;
    b = 8;
}

a = 4, b = 8. , , Integer ( int) , . a b int s, . , bar() a b foo() ', bar() foo(). :

void foo () {
    int a = 1;
    int b = 2;
    bar(a,b);
    System.out.println("a = " + a + ", b = " + b);
}

void bar (int a, int b) {
    a = 4;
    b = 8;
}

a = 1, b = 2.

, , , . , - , ( ). , C ++. , ( Java ), , - ( ).

№ 2:

, , - . , ( , ).

, - ( , ), , , ). , String, , parse(). - ...

String strFractionString = /* initialize the string, e.g., reading from input */
Fraction myFrac = new Fraction(strFractionString); // parses string and assigns num & denom
System.out.println("My Fraction: " + myFrac.numerator + "/" + myFrac.denominator);
+3

, , . , .

.

+2

, , .

, String frac

public class javatest3 {
    static String frac;

    public static void main(String[] args){

        // now you can use frac here
    }

    public static void parse(String fraction) {
        if (fraction.contains("_")){
            ...
            frac = mixed.nextToken();
        }
    }
}
+2

, , parse() , , .

OO , , , parse()

class Fraction {
    public int Numerator = 0;
    public int Denominator = 1;
    public Fraction(int numerator, int denominator) {
        Numerator = numerator;
        Denominator = denominator;
    }
    public static Fraction parse(String fractionString) {
        int num, denom;

        // Your parse code (without the int num and int denom declarations) goes here.

        return new Fraction(num, denom);
    }
}

:

    Fraction f1, f2;
    f1= Fraction.parse(fraction1);
    f2= Fraction.parse(fraction2);
    int num = f1.Numerator * f2.Numerator;
    int denom = f1.Denominator * f2.Denominator;
+2

. , . . , . , .

package testPackage;

public class Test {
    public static int waffle = 5;

    public static void main(String[] args) {
        method1();
        method2();
    }

    public static void method1() {
        System.out.println("Heyy Everyone");
        System.out.println("Waffle is " + waffle); // Print waffle before change
        waffle = waffle + 12 - 4; // Change waffle;
        System.out.println("Method 1 set waffle to " + waffle); // Print waffle after change after 
    }                                                           // change in method2

    public static void method2() {
        System.out.println("Waffle is " + waffle); // Print waffle in method2 after method1 change
        waffle = waffle * 3; // Change waffle
        System.out.println("Waffle is now set to " + waffle);// Print waffle/ after change in method2
    }
}
+1

. , AP CS, , . .

StringTokenizer st = StringTokenizer (); find();

0

, . , , .

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;

public class javatest3
{
    static int num1 = 0;
    static int num2 = 0;
    static int denom1 = 0;
    static int denom2 = 0;

    public static void main(String[] args)
    {
        javatest3 javatest3 = new javatest3();
        System.out.println("Enter an expression (or \"quit\"): "); // prompts
                                                                    // user for
                                                                    // input
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String[] array = null;
        try {
            array = in.readLine().trim().split(" ");
            /*
             * I get the array[0] and array[2], it because 2/3 * 3/4
             * 2/3 is array[0], * is array[1] and 3/4 is array[2]
             */
            String[] arrayX = array[0].split("/");
            String[] arrayY = array[2].split("/");
            String result = javatest3.multiplyFaction(
                    Integer.valueOf(arrayX[0]), Integer.valueOf(arrayY[0]),
                    Integer.valueOf(arrayX[1]), Integer.valueOf(arrayY[1]));

            System.out.println("Result: " + result);
        }
        catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        // intro();

    }

    private String multiplyFaction(int x1, int y1, int x2, int y2)
    {
        int mf1 = x1 * y1;
        int mf2 = x2 * y2;

        return String.valueOf(mf1) + "/" + String.valueOf(mf2);
    }

//  public static void intro()
//  {
//      Scanner input = new Scanner(System.in);
//      String user = input.nextLine();
//      while (!user.equals("quit") & input.hasNextLine()) { // processes code
//                                                              // when user
//                                                              // input does
//                                                              // not equal
//                                                              // quit
//          StringTokenizer chunks = new StringTokenizer(user, " "); // parses
//                                                                      // by
//                                                                      // white
//                                                                      // space
//          String fraction1 = chunks.nextToken(); // first fraction
//          String operand = chunks.nextToken(); // operator
//          String fraction2 = chunks.nextToken(); // second fraction
//          System.out.println("Fraction 1: " + fraction1);
//          System.out.println("Operation: " + operand);
//          System.out.println("Fraction 2: " + fraction2);
//          System.out.println("Enter an expression (or \"quit\"): "); // prompts
//                                                                      // user
//                                                                      // for
//                                                                      // more
//                                                                      // input
//
//          while (user.contains("*")) {
//              parse(fraction1);
//              parse(fraction2);
//              System.out.println("hi");
//              int num = num1 * num2;
//              int denom = denom1 * denom2;
//              System.out.println(num + "/" + denom);
//              user = input.next();
//
//          }
//
//      }
//  }

//  public static void parse(String fraction)
//  {
//      if (fraction.contains("_")) {
//          StringTokenizer mixed = new StringTokenizer(fraction, "_");
//          int wholeNumber = Integer.parseInt(mixed.nextToken());
//          System.out.println(wholeNumber);
//          String frac = mixed.nextToken();
//          System.out.println(frac);
//          StringTokenizer parseFraction = new StringTokenizer(frac, "/"); // parses
//                                                                          // by
//                                                                          // forward
//                                                                          // slash
//          int num = Integer.parseInt(parseFraction.nextToken());
//          System.out.println(num);
//          int denom = Integer.parseInt(parseFraction.nextToken());
//          System.out.println(denom);
//
//      }
//      else if (!fraction.contains("_") && fraction.contains("/")) {
//          StringTokenizer parseFraction = new StringTokenizer(fraction, "/"); // parses
//                                                                              // by
//                                                                              // forward
//                                                                              // slash
//          int num = Integer.parseInt(parseFraction.nextToken());
//          System.out.println(num);
//          int denom = Integer.parseInt(parseFraction.nextToken());
//          System.out.println(denom);
//
//      }
//      else {
//          StringTokenizer whiteSpace = new StringTokenizer(fraction, " ");
//          int num = Integer.parseInt(whiteSpace.nextToken());
//          System.out.println(num);
//      }
//  }
}
-1

All Articles