2015-07-03 90 views
-2

我正在研究簡單的Java應用程序。應用程序應該能夠比較變量值。例如,在我的class A中,有一個名爲alt_value的變量。Java - 如何僅比較一個變量值與以前的值?

所以,這個alt_value是從無人機獲得這個值(我設法從無人機獲得價值)。我需要做的就是將當前的alt_value與之前的值進行比較。如果當前的alt_value高於以前的值,則應顯示「正在上升!」或相反亦然。

這可怎麼辦?任何想法?謝謝。

+3

顯示你的代碼,你試圖做這個操作 –

+0

你可以改變類A嗎?然後最簡單的解決方案將保存2個值在你的對象(活躍和舊)。否則,使用Observeables/ValueChangeListener – ceekay

+0

提示:無需查看代碼;你可能會考慮這樣的問題:「當我想要比較兩個值時,我需要多少個變量,一個還是兩個?」 – GhostCat

回答

0

在班級中維護兩個變量。一個用於新價值,另一個用於舊價值。每當你獲得新的價值時,將它與具有前值的變量進行比較。

+0

沒必要。在獲得新價值之前儲存就應該足夠了,像我提議的那樣說什麼? – JavaHopper

0

使變量「alt_value」私人並創建一個setter「setAlt_value(..)」。在setter中比較alt_value中的現有值和您在setAlt_value()中獲取的新值。

0

您可以在設置新值時執行以下操作。

class Foo{ 
int alt_value; 
String status; 

//setter for the alt_value will be called to set new value 
void setAltValue(int new_alt_value){ 
     if(new_alt_value > alt_value){ 
      status = "Going up"; 
     } 
     this.alt_value = new_alt_value; 
    } 

} 
1

somtehing這樣?

public static void main(String[] args) { 
     String[] test = {"A", "B", "B", "C", "D", "E"}; 
     String prev = ""; 
     for (int i = 0; i < test.length; i++){ 
      if (test[i].equals(prev)){ 
       System.out.println("equals: " + prev); 
      } 
      prev = test[i]; 
     } 
    } 
0

或者是這樣的:

class A { 
    private int alt_value = 0; 

    public int getAlt_value() { 
     return alt_value; 
    } 

    public void setAlt_value(int alt_value) { 
     this.alt_value = alt_value; 
    } 

    public boolean compare(int value) { 
     boolean goingUp = value > alt_value; 
     alt_value = value; 
     return goingUp; 
    } 
    } 

然後你卡恩電話:

A instance = new A(); 
if (instance.compare(4)) { 
    // show "Going Up"! 
} 
0

你需要有一個臨時變量來存儲一個值。這樣的事情應該適合你

prev_alt_value = alt_value; 
alt_value = droneMethodCall(); 
if(alt_value > prev_alt_value) 
    System.out.println("Going Up!");