2014-10-08 5 views
1

학교 프로젝트를위한 자동 판매기 시뮬레이션을 만들고 있는데 이러한 첫 번째 몇 가지 장벽을 극복하는 데 어려움을 겪고 있습니다. 프로젝트의 요구 사항 중 하나는 5 가지 전역 변수를 갖는 것입니다.이 전역 변수는 모든 메소드 외부에서 정의되었지만 클래스 내에서 정의 된 변수를 의미합니다. 처음에는 "Static"과 "Objects"에 대해 알기 전까지는 그 중 하나를 호출 할 수 없었습니다. 이러한 변수를 호출하는 인스턴스 메소드를 작성하고 이러한 인스턴스 메소드의 객체를 생성하여이 문제를 해결했습니다. 내 주요 정적 방법. 그러나 문제는 증가하기 위해 이러한 변수가 필요하며 0에서 변경되지 않을 것입니다! 나는 사용자가 "동전 넣기"를 컴퓨터에 시도하도록 노력하고 있지만 시도 할 때 아무런 반응이 없습니다. 어쨌든, 여기 코드가 있습니다, 그것은 거의 끝나지 않았지만 약간의 도움과 내가 잘못하고있는 것에 대한 설명은 많이 감사하게 될 것입니다. 고맙습니다!변수가 증가하지 않고 정적 메서드에서 비 정적 메서드 호출

package project3; 

import java.util.Scanner; 

public class Project3 { 
     double nickels = 0.00; 
     double quarters = 0.00; 
     double dimes = 0.00; 
     double dollars = 0.00; 
     double credits = nickels + quarters + dimes + dollars; 
public static void main(String[] args) { 
    Project3 menu = new Project3(); 
    menu.menu(); 
} 
public void menu() { 
     int counter = 0; 
     Scanner input = new Scanner(System.in); 
    while (counter >=0 && counter <=4){ 
     System.out.print("Credit: "+credits +"\n0. Insert Money \n1. Twix: 50¢ \n2. Marathon Bar: $1.00 \n3. Snickers: 75¢ \n4. Return Change \nSelection: "); 
     counter = input.nextInt(); 
     switch (counter) { 
      case 0: getMoney(); 
       break; 
      case 1: 
       break; 
      case 2: 
       break; 
      case 3: 
       break; 
      case 4: 
       break;    
     } 
    } 
} 
public void getMoney(){ 
    int counter = 0; 
    Scanner input = new Scanner(System.in); 
    while (counter >=0 && counter <=4){    
     System.out.print("Credit : " +credits+"\n1. Insert Nickel \n2. Insert Dime \n3. Insert Quarter \n4. Insert Dollar \n5. Return to menu \nSelection: "); 
     counter = input.nextInt(); 
     switch (counter) { 
      case 1: nickels += .05; 
       break; 
      case 2: dimes += .10; 
       break; 
      case 3: quarters += .25; 
       break; 
      case 4: dollars += 1.00;  
       break;      
     } 
    } 
    } 
} 
+0

전나무 '.05','.10','.25' 등을 각각 '0.05', '0.10', '0.25'로 바꾸어보십시오. –

답변

4

당신이 당신이 값을의 요청마다 업데이트되지 않는 등

, 현재 nickles 다, 분기에 저장된 값으로 학점을 초기화하는이

당신이해야 할 것은 함수를 추가입니다 : 오히려 학점 이상

private double getCredits(){ 
    return nickels + quarters + dimes + dollars; 
} 

및 인쇄 getCredits()