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

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

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

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

Q&A

解決済

1回答

2799閲覧

processingのreturn文について(文字列)

hirag

総合スコア1

Processing

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

0グッド

1クリップ

投稿2020/10/14 01:47

編集2020/10/14 07:56

processingについての質問です.
文字列baseMsg,⽂字markと,⽂字の繰り返し回数markCntとした時,
baseMsgの前後にmarkをmarkCnt個並べたものを付与した⽂字列を返す関数を作成したいのですが,
関数をどのように作るのか,return文をどのように返すのかがわかりません.教えていただけませんか..

text

1*****welcome***** 2@@@Happy Birthday@@@

Processing//

1void setup(){ 2 noLoop(); 3} 4void draw(){ 5 println(printMsg("welcome",'*',5)); 6 println(printMsg("Happy Birthday",'@',3)); 7} 8String printMsg(String baseMsg,char mark,int markCnt){ 9 String marks; 10 for(int i=0;i<markCnt;i++){ 11 marks+=mark; 12 } 13 return marks+baseMsg+marks; 14}

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thkana

2020/10/14 02:16

ヘルプ https://teratail.com/help でマークダウン記法を確認してみてください。 読みやすいように適宜マークダウンを使うのはここでのマナーと言っても過言ではないでしょう。 `*****welcome*****` あるいは ```Text *****welcome***** @@@Happy Birthday@@@ ``` と書けば、書いたままが表示されるかと思います。 もちろん、プログラムのコード部分も ```Processing //コード本体 ``` とすれば、インデントが保存されるので圧倒的に読みやすくなります。
hirag

2020/10/14 02:20

わざわざありがとうございます.なおしてみます!
dodox86

2020/10/14 02:23

> 関数をどのように作るのか,return文をどのように返すのかがわかりません.教えていただけませんか.. 丸投げです。恐らくこのままでは回答はつかないです。"@@@Happy Birthday@@@"に関して書けば、 markをmarkCnt分繰り返して"@@@"を作る -- (1) (1) の後ろに baseMsgを連結する。--- (2) (2) の後ろに (1)を連結する。 でできます。頑張ってまずは自分でつくりましょう。そうでないと、回答をもらっても理解できません。
hirag

2020/10/14 02:38

(1)のやり方のヒントいただけませんか.. まずmarkをmarkCnt分つくるのはfor文でよろしいですか?
guest

回答1

0

自己解決

Processing//

1void setup(){ 2 noLoop(); 3} 4void draw(){ 5 println(printMsg("welcome",'*',5)); 6 println(printMsg("Happy Birthday",'@',3)); 7} 8String printMsg(String baseMsg,char mark,int markCnt){ 9 String marks=""; 10 for(int i=0;i<markCnt;i++){ 11 marks+=mark; 12 } 13 return marks+baseMsg+marks; 14}

このようになるのですが,String=""としなければ動作しない理由を教えてください.

投稿2020/10/14 07:58

hirag

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/10/14 08:30

> String=""としなければ動作しない理由を教えてください. String marks; ではダメで、String marks=""; としなければいけない理由でしょうか? String marks; と宣言しただけでは、marksと言う変数の中はnull、いうなれば変数の値が使用不可な状態であるためです。 正しく、String marks = ""; とのように「空文字」として初期化しなければ後続のコード、arks += mark; が使えません。 ともあれ、ご自身で解決されたので何よりだったと思います。おめでとうございます。
hirag

2020/10/15 12:07

返信遅くなってごめんなさい. なぜダメなのかよくわかりました! ありがとうございます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問