#java
#java
Вопрос:
Я не уверен, как точно использовать общедоступный статический метод с операторами if / else, которые возвращают только символ. Предполагается, что программа принимает x, y и возвращает, в каком квадранте расположены координаты. (Новичок в Java!)
import javax.swing.JOptionPane;
public class Assignment13 {
public static void main(String[] args) {
String userInputx,
userInputy;
double x, y, answer;
userInputx = JOptionPane.showInputDialog("Please enter your x coordinate.");
x = Double.parseDouble(userInputx);
userInputy = JOptionPane.showInputDialog("Please enter your y coordinate.");
y = Double.parseDouble(userInputy);
answer = MethodQuad.quadrant(x, y);
System.out.println("The coordinates " x y "are located Quadrant " answer);
}
}
class MethodQuad {
public static double quadrant(double x, double y) {
if (x > 0 amp;amp; y > 0) {
return System.out.println("1");
} else if (x < 0 amp;amp; y > 0) {
return System.out.println("2");
} else if (x < 0 amp;amp; y < 0) {
return System.out.println("3");
} else if (x < 0 amp;amp; y > 0) {
return System.out.println("4");
} else {
return System.out.println("0");
}
}
}
Комментарии:
1. Просто примечание: я думаю, что функция квадранта, которая может возвращать одно из пяти значений для действительных координат, немного … излишне сложна и математически произвольна. Если вам не сказали сделать это таким образом, я бы предложил использовать >= 0 и < 0, тогда оси и начало координат также считаются находящимися в квадрантах.
Ответ №1:
Это работает как на другом языке программирования. Если вы написали возвращаемое значение, вы должны вернуть некоторое значение)
class MethodQuad {
public static int quadrant(double x, double y)
{
if(x > 0 amp;amp; y > 0)
return 1;
else if(x < 0 amp;amp; y > 0)
return 2;
else if(x < 0 amp;amp; y < 0)
return 3;
else if (x<0 amp;amp; y >0)
return 4;
else
return 0;
}
}
Ответ №2:
Вы сообщаете методу, что он вернет double в своей строке подписи:
public static double quadrant(double x, double y)
Компилятору это не понравится, поскольку метод фактически не возвращает double (и не должен). Я предлагаю вам изменить эту строку, чтобы она знала, что вместо этого она вернет строку. Вы, наверное, знаете, как это сделать, верно?
Кроме того, в вашем классе вы объявляете answer двойной переменной, что не имеет логического смысла:
double x,
y,
answer;
Какой тип переменной должен answer
быть объявлен как?
Редактировать
Вы также захотите опубликовать свои инструкции по назначению, чтобы мы могли точно видеть, что вы должны делать. Потенциально вы могли бы заставить ответить на int и заставить метод возвращать int — если этого хотел учитель. Итак, давайте посмотрим, что они сказали вам делать.