また、関数が値を返さないため、エラーが発生します。あなたは物事を混乱させているようです。それをvoidとして宣言するか、宣言された型の値を返します(最後は割り当てが必要なものです)。いずれにせよ、実行するには関数またはメソッドを呼び出す必要がありますが、呼び出していません! したがって、関数内のコードは実行されていません!! 以下:
void imAMethod()
{
println("hello");
}
これは有効なメソッドですが、何もしません。次のように呼び出す必要があります。
imAMethod();// calling your method
void imAMethod()
{
println("hello");
}
ただし、これも機能せず、「「アクティブ」モードと「静的」モードが混在しているように見えます」というエラーが表示されます。これは、Processing で関数を使用するには、スケッチに少なくとも setup() メソッドが必要なためです。
void setup()
{
imAMethod();
}//end of setup
void imAMethod()
{
println("hello");
}
期待どおりに動作します。
ただし、関数が必要なため、Jesper が指摘したように、次のようなことを行う必要があります。
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 を読み直して、期待されることを考えてください: 合計を返し、 a が b より大きい場合は単に出力します。これは、より理にかなっていて簡単です。
int twoNUmbers(int a, int b)
{
if (a < b){/*print the string*/}
return a + b;
}
jlordo へのメモです。Processing.org にはメインがありません。それよりも優れているのは、ユーザーから透過的/非表示になっていることです。処理はJavaの「方言」のようなものです。したがって、上記のコードはそのまま実行されます。setup() と draw() という 2 つの基本的な組み込み関数があります。ユーザーがそれらのいずれも使用しない場合、IDE はそれを setup() 関数でワープし、別の場所で main() を呼び出します。1 回実行されます。Draw() は永久にループします。