Java 处理语言中的自定义函数

Java 处理语言中的自定义函数,java,processing,Java,Processing,在“处理”编程语言(java的一种形式)上做一些uni工作 所以我的问题是写一个名为TwoNumber(inta,intb)的函数,它接受两个参数a和b。如果a大于b,则将两个数字相加,并在控制台窗口中显示字符串“a和b的总和为总和”,其中a和b以及总和是a、b及其总和的值。最后,函数应返回总和。“ …所以这是我对代码的尝试,如果我把(inta,intb)放在customer函数后面,它只是说我的另一个int a=数字是重复的,这是真的,但我不确定我怎么能给a和b一个数字而不让它认为是重复的?我

在“处理”编程语言(java的一种形式)上做一些uni工作

所以我的问题是写一个名为TwoNumber(inta,intb)的函数,它接受两个参数a和b。如果a大于b,则将两个数字相加,并在控制台窗口中显示字符串“a和b的总和为总和”,其中a和b以及总和是a、b及其总和的值。最后,函数应返回总和。“

…所以这是我对代码的尝试,如果我把(inta,intb)放在customer函数后面,它只是说我的另一个int a=数字是重复的,这是真的,但我不确定我怎么能给a和b一个数字而不让它认为是重复的?我应该把它从一个空的设置标签中放出来吗?因为我不确定这是否会导致太多的{括号

/* 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);
}
任何帮助都将非常有助于完成此问题和其他问题:)

谢谢

'编写一个名为twoNumbers(intA,intB)的函数,该函数接受两个参数a和b

这不是您的代码的外观。您的方法
two number
不接受两个参数
a
b
。您的代码应该这样开始(与作业中提到的完全相同):

删除下面两行,
inta=30;
intb=20;
。这些行声明了两个名为
a
b
的局部变量。您应该使用作为参数传入的
a
b

这看起来也是错误的:

if (a > b) {println(a+b);}
println("The sum of a and b is sum");
仔细阅读作业内容:

如果a大于b,则将两个数字相加,并在控制台窗口中显示字符串“a和b的总和为总和”,其中a和b以及总和是a、b及其总和的值

这不是你的代码所做的。一步一步地做,仔细思考作业中的意思

'编写一个名为twoNumbers(intA,intB)的函数,该函数接受两个参数a和b

这不是您的代码的外观。您的方法
two number
不接受两个参数
a
b
。您的代码应该这样开始(与作业中提到的完全相同):

删除下面两行,
inta=30;
intb=20;
。这些行声明了两个名为
a
b
的局部变量。您应该使用作为参数传入的
a
b

这看起来也是错误的:

if (a > b) {println(a+b);}
println("The sum of a and b is sum");
仔细阅读作业内容:

如果a大于b,则将两个数字相加,并在控制台窗口中显示字符串“a和b的总和为总和”,其中a和b以及总和是a、b及其总和的值


这不是你的代码所做的。一步一步来,仔细考虑赋值的含义。

此外,你的函数没有返回值,这会给你带来错误。看起来你很困惑。要么声明它为void,要么返回声明类型的值(这是你的赋值所要求的)。无论哪种方式,都需要调用函数或方法才能执行,而您没有调用它!因此,您的函数中的代码没有运行!! 以下是:

void imAMethod()
{
  println("hello");
}
它是一个有效的方法,但不起任何作用,您需要调用它,如:

imAMethod();// calling your method

void imAMethod()
{
  println("hello");
}
但这也不起作用,会给您带来错误。看起来您混合了“活动”和“静态”模式。这是因为要在处理中使用函数,您需要在草图中至少有一个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;
}
int twoNUmbers(int a, int b)
{
 if (a < b){/*print the string*/}
 return a + b;
}
赋值中还有一点不清楚。函数必须返回某些内容,因此,如果A不大于b,则不清楚该函数应返回什么内容。您必须处理这种情况,否则编译器会投诉。您可能希望将此测试移出函数,以使内容更完整sier,比如:

if (a < b)
println("The sum of " + a + " and " + b + " is "+ twoNumbers(a, b));//call your function
else
println(a + " is smaller than " + b);
if(a
在函数中只需求和。但这可能不是赋值所需的…无论如何,即使a不大于b,您也需要返回一些内容。请注意,打印到控制台也可以在函数中完成

嗯,重新阅读作业a,认为预期的结果是:总是返回总和,如果a大于b,则只需打印,这更有意义且更简单,例如:

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;
}
int twoNUmbers(int a, int b)
{
 if (a < b){/*print the string*/}
 return a + b;
}
int两个数字(int a,int b)
{
如果(a

请注意jlordo。在Processing.org中,您没有main,或者更好,它对用户是透明的/隐藏的。处理就像java的“方言”。因此上面的代码将按原样运行。有两个基本内置函数:setup()和draw()。如果用户不使用它们,IDE将在setup()中扭曲它函数,该函数将在其他地方调用main()。它将运行一次。Draw()将永远循环。

此外,您的函数没有返回值,这将给您带来一个错误。看起来您很困惑。要么将其声明为void,要么返回声明类型的值(这是赋值所要求的最后一个值)。无论哪种方式,都需要调用函数或方法才能执行,而您没有调用它!因此,您的函数中的代码没有运行!! 以下是:

void imAMethod()
{
  println("hello");
}
它是一个有效的方法,但不起任何作用,您需要调用它,如:

imAMethod();// calling your method

void imAMethod()
{
  println("hello");
}
但这也不起作用,会给您带来错误。看起来您混合了“活动”和“静态”模式。这是因为在处理过程中使用函数