2015-12-15 57 views
0

我只是搞亂Java代碼,看看我能做什麼,不能做什麼。我遇到了一個我創建的String變量的問題,它說它可能沒有被初始化。我知道問題是什麼,爲什麼它可能沒有被初始化,但我找不到如何解決它,我試着將代碼放在不同的位置,創建或刪除字符串,沒有任何工作。這一切都會導致同樣的問題。 方法的代碼:繞過初始化變量

public class BankAccount { 
    private int balance; 
    private String name; 

    public BankAccount(String n) { 
     n = name; 
    } 

    public void deposit(int dep) { 
     balance = balance + dep; 
    } 

    public void withdrawl(int wit) { 
     balance = balance - wit; 
    } 

    public int getBalance() { 
     return balance; 
    } 
} 

測試代碼:

import java.util.Scanner; 

public class BankTester { 
    public static void main(String[] args) { 
     int i = 0; 
     int dep; 
     int wit; 
     int d; 
     String dw; 
     String alm; 

     Scanner input = new Scanner(System.in); 

     System.out.print("Name Of Bank Account: "); 
     String name = input.next(); 
     BankAccount account = new BankAccount(name); 

     while(true) { 
      System.out.println("Open Account? (y/n): "); 
      String open = input.next(); 

      if (open.equals("y")) { 
       System.out.print("\f"); 
       System.out.println("Account Open!"); 
       break; 
      } else if (open.equals("n")) { 
       System.exit(1); 
      } else { 
       System.out.print("\f"); 
       i++; 
       System.out.println("Incorrect Syntax"); 
       System.out.println("Attempts: " + i); 
      } 
     } 
     while(true) { 
      System.out.println(); 
      System.out.println("Your balance is " + account.getBalance()); 
      if (account.getBalance() == 0) { 
       System.out.print("\f"); 
       System.out.println("It seems you don't have any money in your account.."); 
       System.out.print("Would you like to deposit some? (y/n): "); 
       alm = input.next(); 
      } else { 
       System.out.print("\f"); 
       System.out.println("Would you like to do anything with your account " + name + "? (y/n)"); 
       alm = input.next(); 
      } 
      while (true) { 
       if (account.getBalance() > 0) { 
        if (alm.equals("y")) { 
         System.out.print("What would you like to do? (deposit/withdrawl): "); 
         dw = input.next(); 
         break; 
        } else if (alm.equals("n")) { 
         System.exit(1); 
        } else { 
         System.out.print("\f"); 
         System.out.println("Incorrect Syntax"); 
        } 
       } 
       if (account.getBalance() == 0) { 
        if (alm.equals("y")) { 
         System.out.print("\f"); 
         System.out.println("How much money would you like to deposit?"); 
         System.out.print("Amount: "); 
         dep = input.nextInt(); 
         account.deposit(dep); 
         break; 
        } else if (alm.equals("n")) { 
         System.exit(1); 
        } else { 
         System.out.print("\f"); 
         System.out.println("Incorrect Syntax"); 
        } 
       } 
      } 
      if (dw.equals("deposit")) { 
       System.out.print("\f"); 
       System.out.println("How much money would you like to deposit?"); 
       System.out.print("Amount: "); 
       dep = input.nextInt(); 
       account.deposit(dep); 
      } 
     } 
    } 
} 

這是在那裏說底部:

if (dw.equals("deposit")) { 
       System.out.print("\f"); 
       System.out.println("How much money would you like to deposit?"); 
       System.out.print("Amount: "); 
       dep = input.nextInt(); 
       account.deposit(dep); 
      } 

「變量DW可能尚未初始化」 是我的錯誤。我怎麼能繞過這個if語句,所以它會忽略它,除非餘額大於0?

回答

2

在聲明它可以初始化:

String dw = "";