Часть моего кода Java не работает. Я довольно новичок в java и разрабатываю некоторые новые изменения в среде. Моему классу было предложено построить калькулятор температуры ветра. Моя основная проблема заключается в том, что мой код работает до for (ws = wsp; ws < = c; ws + = 0,5), а затем останавливается.Часть кода не работает
import java.util.*;
class Assign1
{
public static void main(String args[])
{
Menu user = new Menu();
Menu.mainmenu();
user.acceptSelection();
}
}
class Menu
{
public static void mainmenu()
{
System.out.println("Temperature Analysis MENU");
System.out.println("1.W)ind Chill Temperature");
System.out.println("0.E)xit");
System.out.println("Enter Selection:");
}
public void acceptSelection()
{
Scanner stdin = new Scanner(System.in);
String selection = stdin.nextLine();
char choice = selection.charAt(0);
switch(choice)
{
case 'W':
case 'w':
case '1':
processing.process(); break;
case 'E':
case 'e':
case '0':
System.out.println("E"); break;
}
}
}
class processing
{
public static void process()
{
Scanner stdin = new Scanner(System.in);
System.out.println("\n\n\n\n\n\n\n");
System.out.print("Please enter START air temp in celsius (decimal) MUST be BELOW 9: ");
double sa = stdin.nextDouble();
System.out.print("Please enter END air temp in celsius (decimal) MUST be BELOW 9: ");
double ea = stdin.nextDouble();
System.out.print("Please enter wind speed (decimal) FROM 8km/h to: ");
double w = stdin.nextDouble();
System.out.println("\n==================================================================\n");
calculation(sa, ea, w);
}
public static void calculation(double a, double b, double c)
{
double wsp = 8.0;
double airTemp;
double ws;
int size = 150;
double[] wChill = new double[size];
int count = 0;
System.out.print(" " + a);
while(a <= b)
{
System.out.print(" " + a);
a +=5;
count++;
}
System.out.print(" " + b);
int count2 = 0;
while(wsp <= c)
{
count2++;
wsp += 0.5;
}
double[][] chart = new double[count2][count];
int i = 0, j = 0, k = 0;
Здесь он перестает работать. Я не могу заставить его распечатать мой цикл. Любая помощь в исправлении моей проблемы будет оценена, а также заметки для моего кода, поскольку я пытаюсь улучшить. Я использую JGrasp, если это помогает.
for (ws = wsp; ws <= c; ws += 0.5)
{
System.out.println(ws + " ");
for (airTemp = a; airTemp <= b; airTemp += 5.0)
{
if ((ws + 0.5) > c)
{
System.out.printf("%2d %2d", c , chart[k][i]);
}
else
{
wChill[i] = (13.12 + (0.6215*airTemp)+(-11.37*Math.pow(ws, 0.16))+(0.3965*airTemp*Math.pow(ws, 0.16)));
chart[k][i] = wChill[i];
System.out.print(chart[k][i] + " ");
}
i++;
}
k++;
}
}
}
Как он перестает работать? Сбой? Вышли неправильные значения? Он переходит в бесконечный цикл? Пожалуйста, добавьте дополнительную информацию о том, что пойдет не так, и ваши значения для 'a',' b' и 'c' (которые я настоятельно рекомендую переименовать в более значимые имена типа' startTemp', 'endTemp' и' maxWindSpeed'. и Eclipse имеет встроенный отладчик, научитесь использовать его, поскольку установка точки останова на 'for (ws = wsp; ...' будет очень информативной. –
Добро пожаловать в Stack Overflow! Чтобы дать вам отличный ответ, помогите нам, если у вас есть взгляд на [ask], если вы еще этого не сделали. Это может быть полезно, если вы можете предоставить [mcve]. – Mat