Также ваша функция не возвращает значение, что приведет к ошибке. Похоже, вы путаете вещи. Либо объявите его пустым, либо верните значение объявленного типа (последнее - это то, что требует ваше назначение). В любом случае для выполнения необходимо вызвать функцию или метод, а вы не вызываете ее! Таким образом, код внутри вашей функции не запускается!! Следующее:
void imAMethod()
{
println("hello");
}
Это допустимый метод, но он ничего не сделает, вам нужно вызвать его, например:
imAMethod();// calling your method
void imAMethod()
{
println("hello");
}
Но это также не сработает, выдаст ошибку "Похоже, вы смешиваете "активный" и "статический" режимы". Это потому, что для использования функции в Processing вам нужно иметь хотя бы метод setup() в скетче, поэтому:
void setup()
{
imAMethod();
}//end of setup
void imAMethod()
{
println("hello");
}
будет работать так, как ожидалось.
Но вам нужна функция, поэтому, как указал Джеспер, вам придется сделать что-то вроде:
int a = 30; // those are global variables to pass to your function
int b = 20;
void setup()// this is a builtin basic Processing method
{
//call your function
println("The sum of " + a + " and " + b + " is "+ twoNumbers(a, b));
}
int twoNumbers(int a, int b)
{
//do your math and tests here
return result;
}
В задании непонятно другое. Функция должна что-то возвращать, поэтому неясно, что должна возвращать функция, если a не больше, чем b. Вам придется обработать этот случай, иначе компилятор будет жаловаться. Вы можете переместить этот тест из функции, чтобы упростить задачу, например:
if (a < b)
println("The sum of " + a + " and " + b + " is "+ twoNumbers(a, b));//call your function
else
println(a + " is smaller than " + b);
и в функции просто сделайте сумму. Но это может быть не то, что требует присваивание... В любом случае вам нужно будет что-то вернуть, даже если a не больше, чем b. Обратите внимание, что печать на консоль также может выполняться внутри функции.
Хммм, перечитывая задание, я думаю, что ожидается следующее: всегда возвращайте сумму и просто печатайте, если a больше, чем b, что имеет больше смысла и проще, что-то вроде:
int twoNUmbers(int a, int b)
{
if (a < b){/*print the string*/}
return a + b;
}
Просто записка для джлордо. В Processing.org у вас нет основного, или лучше, он прозрачен/скрыт от пользователя. Обработка похожа на «диалект» java. Таким образом, приведенный выше код будет работать как есть. Есть две основные встроенные функции: setup() и draw(). Если пользователь не использует ни один из них, IDE искажает его в функции setup(), которая вызовет main() в другом месте. Он будет запущен один раз. Draw() вместо этого зацикливается навсегда.
person
v.k.
schedule
07.11.2012
public static int twoNumbers(int a,int b)
и не создавайте новые переменные с теми же именами. Просто используйте эти переменные. Также покажите нам свой основной метод, где вы вызываете этот метод. - person jlordo   schedule 07.11.2012