对'Processing'编程语言(java的一种形式)做一些单一工作。
所以我的问题是'编写一个名为twoNumbers(int a,int b)的函数,它接受两个参数a和b。如果a大于b,则将两个数字相加,并且字符串'a和b的总和为sum'显示在控制台窗口中,其中a和b以及总和是a,b及其值的值和。最后,函数应返回总和。'
.. soo这里是我对代码的尝试,如果我把(int a,int b)放在客户函数之后,它只是说我的其他int a = number,是重复的,这是真的,但我是不知道如果没有它认为它是重复的话我怎么给a和ba号?我应该将它从空白设置标签中删除吗?我不确定这是否会导致太多{括号......
/* 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);
}
任何帮助对于解决这个问题和其他问题都会非常有帮助:)
谢谢!
答案 0 :(得分: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 ,你也需要返回一些东西。请注意,打印到控制台也可以在函数内部完成。
Hummm,重新阅读作业,想一想预期的是:总是返回总和,只要打印 a 大于 b ,这就更有意义了更容易,比如:
int twoNUmbers(int a, int b)
{
if (a < b){/*print the string*/}
return a + b;
}
只是jlordo的注释。在Processing.org中,您没有主要内容,或者更好,它对用户来说是透明/隐藏的。处理就像java的“方言”。所以上面的代码会按原样运行。有两个基本的内置函数:setup()和draw()。如果用户不使用它们,则IDE将在setup()函数中对其进行扭曲,这将在其他位置调用main()。它将运行一次。 Draw()反而永远循环。
答案 1 :(得分:1)
'编写一个名为twoNumbers(int a,int b)的函数,它接受两个参数a和b。
这不是你的代码的样子。您的方法twoNumbers
不会使用两个参数a
和b
。您的代码应该像这样开始(完全如赋值中所述):
int twoNumbers(int a, int b) {
删除接下来的两行int a = 30;
和int b = 20;
。这些行声明了两个名为a
和b
的局部变量。您应该使用作为参数传入的a
和b
。
这看起来也错了:
if (a > b) {println(a+b);}
println("The sum of a and b is sum");
仔细看看作业的内容:
如果a大于b,则两个数字相加,字符串'a和b的总和为sum'显示在控制台窗口中,其中a和b以及总和是a的值, b和他们的总和。
这不是你的代码正在做的事情。一步一步地,仔细考虑作业中的含义。