質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

解決済

"Missing operator, semicolon, or '}' near 'setup'?"  のエラー表示が消えない

Rin20
Rin20

総合スコア1

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

2回答

0グッド

1クリップ

1914閲覧

投稿2022/05/29 05:01

編集2022/05/29 09:16

"Missing operator, semicolon, or '}' near 'setup'?"  のエラー表示が消えなくて困っています。void setup/void drawingに下線が引かれて表示されています。必要なものは書いてあるのうに思うのですがどこに何が必要なのでしょうか。教えていただけると幸いです。
現在の実行環境はprocessing.exe (bata) 4.0b2 です。 よろしくお願いします。

size(800,800); background(0); stroke(219,18,128); //orion line(300,330,330,280); line(310,320,310,320); line(305,330,400,400); noFill(); beginShape(); vertex(400,400); vertex(460,450); vertex(455,500); vertex(500,490); vertex(470,440); vertex(480,395); vertex(440,380); endShape(CLOSE); line(480,395,500,330); line(500,330,530,390); line(530,390,540,410); //star for (int y = 0; y<=height; y += 100){ for (int x = 0; x <= width; x+=100){ fill(219,18,128); ellipse(x,y,1,1); } } void setup(){ strokeWeight(4); stroke(0,50); } void draw(){ float weight = dist(mouseX,mouseY,pmouseX, pmouseY); strokeWeight(weight); line(mouseX,mouseY,pmouseX,pmouseY); }

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

meg_

2022/05/29 05:21 編集

コードは「コードの挿入」で記入してください。(void drawは何処ですか?上記コードは別のエラーが出ますが) エラー発生行はどこですか?
Rin20

2022/05/29 05:26 編集

@meg_ 失礼いたしました。修正済です。 エラーはvoid setup () 及び void draw () に表示されます。よろしくお願いします。
meg_

2022/05/29 05:36

Processing 4.0b8 で質問のコードを試すと「You may be mixing active and static modes.」のエラーが発生して、質問者さんの言う「missing operator,semicolon, or } のエラー」は発生せず状況を再現できません。 Processingの実行環境等質問に追記されると良いかもしれません。
Rin20

2022/05/29 05:47

@meg_ 情報追記致しました。 モードはJavaになっています。調べたところモードは切り替えなさそうですがactive/staticについては知識不足でわからず。。。お助けいただけると幸いです。
meg_

2022/05/29 05:53

手元の環境(Windows)では質問者さんと同じエラーが再現しないため検証できませんでした。状況が再現できる方からの回答をお待ちいただくのが良いかと思います。
Rin20

2022/05/29 06:09

@meg_ ありがとうございます。ちなみにmeg_さんの実行環境はどういったものになるのでしょうか。
thkana

2022/05/29 06:27

> void setup/void drawでmissing operator,semicolon, or } のエラー表示 そのエラーの意味がわからないでいるあなたの解釈ではなく、 あなたの目の前に表示されている「そのまま」を教えてください。出ているメッセージは"missing operator,semicolon, or }"だとして、「void setup/void draw で」というのはなんですか?
meg_

2022/05/29 07:07

> ちなみにmeg_さんの実行環境はどういったものになるのでしょうか。 コメントに書いた通りWindows + Processing 4.0b8 ですが。
thkana

2022/05/29 07:16

そもそもベータ版ってのは「完成品じゃないのは承知で"評価"に使ってね」というもののはずてす。 本来の使い方もわからないのならベータ版など使うべきではないと思います。
TN8001

2022/05/29 07:59

@thkanaさん > そもそもベータ版ってのは「完成品じゃないのは承知で"評価"に使ってね」というもののはずてす。 > 本来の使い方もわからないのならベータ版など使うべきではないと思います。 確かにベータ版ですが、公式も3系よりはましと言っています。 > The beta is the default download on the site because it's more usable than the 3.5.4 release. [processing/processing4: Processing 4.x releases (currently in “beta”) that use Java 17](https://github.com/processing/processing4#roadmap) ダウンロードも4系を先に出しています。 [Download / Processing.org](https://processing.org/download)
thkana

2022/05/29 08:31

う~ん、4は正式版になってから手を出そうと思ってて全然中はみてなかったけど... それじゃ3.5の立場はどうなるんでしょ? なんて思ったりして。 ついでに > This work is being done by a tiny number of people who continue working on it, unpaid, 私が払ったdonationはどこに行ったの?
TN8001

2022/05/29 09:14

> う~ん、4は正式版になってから手を出そうと思ってて全然中はみてなかったけど... > それじゃ3.5の立場はどうなるんでしょ? なんて思ったりして。 見比べてみると3系はほとんど動いていません。 逆に言えばわかっているバグ以外は出ることもないので安定しているとも言えます^^; [processing/processing: Source code for the Processing Core and Development Environment (PDE)](https://github.com/processing/processing) [processing/processing4: Processing 4.x releases (currently in “beta”) that use Java 17](https://github.com/processing/processing4) 4系はこの間まで日本語でカーソルがずれるので勧めにくかったのですが、8で解消しました(わたしがPR出しました^^; [Release Processing 4.0 beta 8 · processing/processing4](https://github.com/processing/processing4/releases/tag/processing-1283-4.0b8) 実質数人での開発なので3系は打ち止めにして、4系に集中したいということだと思います。 同時に起動することはできませんが、3系と4系を両方入れることはできます。

回答2

0

ベストアンサー

確かにベータ2で実行(しようと)すると

"Missing operator, semicolon, or '}' near 'setup'?" でエラー

というエラーが出ますね。エラー内容としてはわかりにくいですね。

ベータ8では

"You may be mixing active and static modes." でエラー

とエラー文がわかりやすく改善されています。

例えばこういうのがstaticモードです。
動きがないスケッチなら、setupやdrawを書かずに短くシンプルに書くことができます。

Processing

1size(400, 400); 2background(192, 64, 0); 3stroke(255); 4line(150, 25, 270, 350);

そしてこういうのがactiveモードです。
動きがあるスケッチは初回に実行されるsetupと、毎フレーム呼ばれるdrawが必要です。

Processing

1void setup() { 2 size(400, 400); 3 stroke(255); 4 background(192, 64, 0); 5} 6void draw() { 7 line(150, 25, mouseX, mouseY); 8}

提示のコードは両方が混じってしまっています。
意図通りになっているかはわかりませんが、例えばこのようにsetupかdraw内に処理を書く必要があります。

Processing

1void setup() { 2 size(800, 800); 3 strokeWeight(4); 4 stroke(0, 50); 5} 6 7void draw() { 8 background(0); 9 stroke(219, 18, 128); 10 11 //orion 12 line(300, 330, 330, 280); 13 line(310, 320, 310, 320); 14 line(305, 330, 400, 400); 15 16 noFill(); 17 beginShape(); 18 vertex(400, 400); 19 vertex(460, 450); 20 vertex(455, 500); 21 vertex(500, 490); 22 vertex(470, 440); 23 vertex(480, 395); 24 vertex(440, 380); 25 endShape(CLOSE); 26 27 line(480, 395, 500, 330); 28 line(500, 330, 530, 390); 29 line(530, 390, 540, 410); 30 //star 31 for (int y = 0; y<=height; y += 100) { 32 for (int x = 0; x <= width; x+=100) { 33 fill(219, 18, 128); 34 ellipse(x, y, 1, 1); 35 } 36 } 37 38 float weight = dist(mouseX, mouseY, pmouseX, pmouseY); 39 strokeWeight(weight); 40 line(mouseX, mouseY, pmouseX, pmouseY); 41}

投稿2022/05/29 09:51

編集2022/05/29 09:53
TN8001

総合スコア8053

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

エラーメッセージの説明には疑問いっぱいですし、そもそも「エラーメッセージを消す」のではなく、「プログラムを正しく書く」のです。同じことと言えば同じことですが、「エラーメッセージを消す」ために、思いつく限りの文字を埋め込んでみてまぐれ当たりでもエラーが消えれば良しとして実は動作がめちゃくちゃなプログラムに仕立てていたりする人をよく見かけるので...

とりあえずProcessingではvoid setup(){}やvoid draw(){}を含む関数定義を使用して実行文は関数内に記述するActiveモードと
関数定義を使用しないで関数の呼び出しや制御文のみを行うStaticモードの二つがあります。

関数定義をするのなら、関数定義の外でsize(800,800);などの実行文を記述することはできません。
この場合であれば、setup()関数定義の前の記述を全てsetup()の関数定義の{}内に取り込めばなにかしら動くと思います。(そもそものエラーが残っていなければ...) ただし、「エラーが消えた」としてもプログラムが思い通りに動くかどうかは別の話です。

投稿2022/05/29 06:41

thkana

総合スコア7336

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

Rin20

2022/05/29 09:13

こちらが表示されるメッセージです。 void setup, void drawingに下線がひかれています。 また、size/backgroundをvoid setup内に入れても同様のメッセージが表示されます。 "Missing operator, semicolon, or '}' near 'setup'?" でエラー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。