2015-11-30 38 views
1

我有問題需要更改變量的值。我發現This較舊的問題,但我仍然有問題將其應用於我的代碼。如果有人可以查看我的代碼並提供一些指導,我將非常感激。這是我的代碼:如何將變量的值從另一個類中更改爲null?

public class GMTime { 

    private static String time; 
    private static int hour; 
    private static int minutes; 
    private static int colon; 
    private static String error = null; 

    // ********************************************************** 
    // constructor passing time as a string 
    public GMTime(String temp) { 
     time = temp; 
    } 
    // end constructor 
    // ********************************************************** 
    // method checking the colon presence and place between 1-2 index 

    public String colonCheck(String error) { 
     while (time.contains(":")) { 
      colon = time.indexOf(":"); 
     } // end of while 
     if (colon != 1 || colon != 2) { 
      error = "Invalid separator entered"; 
     } 
     System.out.println(error); 
     return error; 
    } // end colon check 
    public static String getError(){ 
    return error; 
    } 
} 

司機:

import java.util.Scanner; 

public class GMUnit6Ch15{ 

    public static void main(String[] args){ 

    Scanner stdIn = new Scanner(System.in); 
    String time; 
    System.out.print("Enter time in the form mm:dd (\"q\" to quit) :"); 
    time = stdIn.next(); 

    while (!time.equalsIgnoreCase("q")){ 

    GMTime userTime = new GMTime(time); 

    System.out.print("Enter time in the form mm:dd (\"q\" to quit) :"); 
    time = stdIn.next(); 

    } 

我加了這個,如果修改錯誤的作品只是爲了測試。

System.out.println(GMTime.getError()); 


    }//end of main 

} //類的結束

我想要做的是,如果「冒號」不存在的「時間」從後來的更改「錯誤」的值,這樣我可以打印驅動程序。

+0

你也可以張貼驅動程序類(以及範例輸入/輸出),所以w e可以看看整個程序? –

+2

當然,雖然是一項工作。 –

+1

你在哪裏調用colonCheck()?預期的結果是什麼? – Perdomoff

回答

0

有在gmtime的和colonCheck(至少三個問題):

  1. GMTimestatic似乎不是必需的變量。
  2. while (time.contains(":"))循環可能是一個無限循環。
  3. 聲明if (colon != 1 || colon != 2)實際上總是如此,不管colon是什麼值。

一個可能的方式來解決這些問題,是如下(我已經測試的代碼,所以請儘量從這裏開始並完成整個程序):

gmtime的類:

public class GMTime { 

    private String time; 
    private int hour; 
    private int minutes; 
    private int colon; 
    private String error = null; 

    // ********************************************************** 
    // constructor passing time as a string 
    public GMTime(String temp) { 
     time = temp; 
    } 
    // end constructor 
    // ********************************************************** 
    // method checking the colon presence and place between 1-2 index 

    public void colonCheck() { 
     while (time.contains(":")) { 
      colon = time.indexOf(":"); 
      time = time.substring(colon + 1); 
     } // end of while 
     if (colon != 1 && colon != 2) { 
      error = "Invalid separator entered"; 
     } else { 
      error = "No error"; 
     } 
    } // end colon check 

    public String getError() { 
     return error; 
    } 
} 

GMUnit6Ch15類:

import java.util.Scanner; 

public class GMUnit6Ch15 { 

    public static void main(String[] args) { 

     Scanner stdIn = new Scanner(System.in); 
     String time; 
     System.out.print("Enter time in the form mm:dd (\"q\" to quit) :"); 
     time = stdIn.next(); 

     while (!time.equalsIgnoreCase("q")) { 

      GMTime userTime = new GMTime(time); 
      userTime.colonCheck(); 
      System.out.println(userTime.getError()); 

      System.out.print("Enter time in the form mm:dd (\"q\" to quit) :"); 
      time = stdIn.next();    
     } 
    } 
} 

的Exemplar輸入/輸出:

在形式毫米輸入時間:DD( 「q」 退出):1111

無效分離器輸入

在形式毫米輸入時間:DD( 「q」 退出):11: 11

沒有錯誤

形式毫米輸入時間:DD( 「q」 退出):q

+2

感謝您花時間審查我的代碼我非常感謝。 –

+0

@Elrascabuches非常感謝:-) –

相關問題