2013-11-26 6 views
-5

Это мой второй вопрос, задающий этот вопрос, потому что это назначение должно быть завтра, и я все еще не понимаю, как продвигаться в моем коде! Я нахожусь в классе компьютерного программирования AP, поэтому я начинаю начинать с этого. Моя цель (до сих пор) состоит в том, чтобы умножить две фракции. Есть ли способ использовать переменную внутри конкретного метода вне этого метода в другом методе? Надеюсь, это не смущает, спасибо!Java-калькулятор, глобальные переменные?

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); 
} 
}} 
+0

Вы задаете неправильный вопрос. Вы отвечаете на конкретный вопрос: «Есть ли способ использовать переменную внутри определенного метода вне этого метода в другом методе?» Всегда будет «нет». Переменная инкапсулируется как локальная переменная. –

+0

Вы можете объявить переменные глобальными. Или вы можете передать переменные в качестве параметров. – Adarsh

+1

Если это тот же вопрос, который вы задали здесь: http://stackoverflow.com/questions/20207131/java-fraction-calculator, то вы должны удалить этот вопрос. –

ответ

4

Есть ли способ, чтобы использовать переменную внутри конкретного метода вне этого метода в другой метод?

Да, вы можете это сделать. Вы можете объявить переменную в методе, использовать ее там и передать ее другому методу, где вы можете его использовать. Что-то вроде этого

void test1() { 
    int var = 1; 
    System.out.println(var); // using it 
    test2(var); // calling other method and passing the value of var 
} 

void test2(int passedVarValue) { 
    System.out.println(passedVarValue); // using the passed value of the variable 
    // other stuffs 
} 
Смежные вопросы