0

'Processing' プログラミング言語 (Java の一種) に関するユニ作業を行っています。

だから私の質問は、「a と b の 2 つのパラメーターを取る twoNumbers(int a,int b) という関数を書く」です。a が b より大きい場合、2 つの数値が加算され、「a と b の合計は合計です」という文字列がコンソール ウィンドウに表示されます。和。最後に、関数は合計を返す必要があります。

..soo ここにコードの試みがあります。顧客関数の後に (int a,int b) を配置すると、他の int a = number が重複していると表示されますが、これは本当ですが、方法がわかりません重複しているとは思わずに番号を指定することはできますか? void setup タグの外に出す必要がありますか? これがあまりにも多くの{ブラケットを引き起こすかどうかわからないので...

/* Question 1 */

int twoNumbers(){
int a = 30;
int b = 20;
 if (a > b) {println(a+b);}
  println("The sum of a and b is sum");
  int sum;
  sum = a+b;
  println(sum);
}

これと他の質問を完了するには、どんな助けも非常に役立ちます:)

ありがとう!!

4

2 に答える 2

2

また、関数が値を返さないため、エラーが発生します。あなたは物事を混乱させているようです。それを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() は永久にループします。

于 2012-11-07T16:15:35.500 に答える
1

'2 つのパラメーター a と b を受け取る twoNumbers(int a,int b) という関数を作成します。

それはあなたのコードがどのように見えるかではありません。あなたのメソッドは と の 2 つのパラメーターをtwoNumbers取りません。コードは次のように開始する必要があります (課題で述べたとおりです)。ab

int twoNumbers(int a, int b) {

次の 2 行を削除しint a = 30;int b = 20;. aこれらの行は、 およびという名前の 2 つのローカル変数を宣言しbます。代わりに、パラメーターとして渡されるaandを使用する必要があります。b

これも間違っているように見えます:

if (a > b) {println(a+b);}
println("The sum of a and b is sum");

課題の内容を注意深く見てください。

a が b より大きい場合、2 つの数値が加算され、「a と b の合計は合計です」という文字列がコンソール ウィンドウに表示されます。和。

それはあなたのコードがやっていることではありません。一歩一歩、課題の意味を慎重に考えてください。

于 2012-11-07T14:46:46.617 に答える