Я программирую симуляцию радио тюнера. Теперь я хочу иметь метод, который может проходить через массив или arraylist, с шагом 0,05 МГц. На данный момент у меня есть массив с моими любимыми радиочастотами, и цикл должен быть остановлен, если найдена частота.Найти следующее двойное значение в массиве
public static double favFrequencies [] = {89.8, 91.5, 93.7, 95.1, 97.7, 99.2, 100.7, 101.2, 101.7, 102.7, 103.0, 104.4};
На данный момент у меня есть следующий код:
public static void searchDown()
{
double startFrequency = Math.round(currentFreq * 100);
double maxFrequency = Math.round(87.80 * 100);
for (double f = startFrequency; f > maxFrequency; f -= 5) {
//boolean nextFavFound = false;
if (f < 8785)
{
f = 10800;
}
for (double f2 : favFrequencies) {
if (f/100 == f2) {
nextFavFound = true;
//break;
}
}
if (nextFavFound) {
currentFreq = f /100;
RadioGUI.lblFreq.setText("FM " + Double.toString(currentFreq)+ "Mhz");
System.out.println("next favFrequency: " + f/100);
nextFavFound = false;
break;
}
}
}
Это действительно работает очень хорошо, но когда я снова запустить метод, он не будет работать с новым, выводимого значения в первый раз ,
Я использую [For Loop] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html) сравнивает частоту против моих и если я найду его, то перерыв из заявления. [ЗДЕСЬ] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html) является хорошим примером этого. – gtgaxiola
Я обновил вопрос –