2014-02-07 61 views
0

有沒有辦法確定一個數字是否在兩個特定數字的範圍內,如果這些數字正在改變?例如:檢查號碼是否在動態更改號碼的範圍內?

int num1 = -10; 
int num2 = 100; 
int num3 = 5; 

if(num3 > num 1 && num3 < num2){ 

} 

確定num3是否介於num1和num2之間相當容易。但是,可以說num1和num2在程序運行期間動態變化:

num2 becomes -30 

其他所有內容保持不變。現在與之前相同的算法將不再起作用。有沒有一種優雅的方式來檢查一個數字是否在使用動態變化的最大值和最小值進行範圍調整?

+2

如果您的某個整數的值發生變化,算法仍然有效,除非兩個邊界中的較大值變爲兩者中較小的一個(您的示例中似乎不是這種情況)。其他事情正在發生。 – Vulcan

+0

Yeha它意味着num2變得更低。我修復了帖子 – TastyLemons

回答

2

你可以嘗試以下方法,我創建2個變量iMin & iMax,並checking num3 is in rank之前,我們定義最大值和最小值:

int num1 = -10; 
int num2 = 100; 
int num3 = 5; 

if (num3 > Math.min(num1, num2) && num3 < Math.max(num1, num2)) { 

} 
+1

通過使用'Math.min'和'Math.max',可以使這段代碼更加清晰。 – Vulcan

+0

@Vulcan感謝你的建議:-) –

+0

@Vulcan啊對,好人:-) –

0

還有點兒傻。如果你有一個函數中的算法,並且你說你想num3num1num2之間,就是這樣。該規則不應改變,因爲num1num2已更改。實現應該是通用的並且獨立於值。

如果您在此之前需要驗證,請執行此操作。我沒有看到任何其他優雅的方式來做到這一點。