習いたてなのですが、関数が苦手です。
教えてください。
void setup(){
noLoop();
}
int bigger(int m,int n){ //ここのエラーの原因教えてください。
if(m>=n){
return m;
}
if(m<n){
return n;
}
}
void draw(){
println(bigger(10,20));
}
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答1件
0
ベストアンサー
biggerの行をマウスクリックすると以下のようなエラーメッセージが表示されます。
This method must return a result of type int
まずこのメッセージの意味を把握してください。プログラミングをするなら英語や専門用語に慣れなければいけません。そうでないとプログラミングは事実上不可能です。完全に読めなくても意味が掴めればとりあえずよしです。
エラーメッセージの意味は「このメソッド(biggerのこと)はint型の結果を戻さなければなりません」です。int型の値をreturn文によって戻してないよといってるわけです。
しかし・・・
processing
1int bigger(int m,int n) { 2 if (m >= n) { 3 return m; 4 } 5 if (m < n) { 6 return n; 7 } 8}
mかnをちゃんとreturnしているように見えます。ところがProcessingは「必ずどちらかの条件は成立する」とは認識してくれない(認識できるようにプログラムされていない)です。
そのため、Processingが「必ずint値をリターンしている」と容易に認識できるような書き方をしなければなりません。その書き方とは次のようなものになります。
processing
1int bigger(int m,int n) { 2 if (m >= n) { // (1) 3 return m; 4 } 5 return n; // (1)が不成立でもここで必ずreturnすればProcessingは満足する 6} 7 8// または 9 10int bigger(int m,int n) { 11 if (m >= n) { // (1) 12 return m; 13 } else { // (2) 14 return n; // (1)が不成立の時必ず(2)のelse節が実行されるはずということはProcessin 15 // にも把握できる。 16 } 17}
最初は言語処理プログラムが「どこまで賢いか」がわかりにくいと思います。数学的には正しくても言語処理プログラムがそれを理解してくれるとは限りません(大抵は理解してくれないです)。そのため計算機の把握力に寄り添って記述する方法(コツ)を覚えねばなりません。このあたりは一種の慣れだと思います。
投稿2019/05/20 16:17
総合スコア18404
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/20 22:44
2019/05/21 14:01

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。