• 締切済み

JavaScriptについて

はじめまして独学でJavaScriptの学習をしているのですが サブルーチンの使い方が分かりません。 例として switch (変数) { case 1: Aの処理; case 2: Bの処理; case 3: Cの処理; } といったようにABCそれぞれを別のルーチンで 処理を行いたいのですが可能でしょうか? 分かる方いらっしゃいましたら よろしくお願いします。

みんなの回答

回答No.2

switch (変数) { case 1: A (); break; case 2: B (); break; case 3: C (); break; } function A () { Aの処理;} function B () { Bの処理;} function C () { Cの処理;} -- [A, B, C][変数-1]();

  • MrYoYoYo
  • ベストアンサー率33% (38/115)
回答No.1

switch (変数) { case 1: Aの処理;  break; case 2: Bの処理;  break; case 3: Cの処理;  break; } 「break」が抜けているからでしょうか? javascriptでもswitchは利用可能です。

関連するQ&A

  • javascriptのreturnがわからない

    javascriptのreturnとは? return、あるいは返すという概念がよくわからず困っています。 教えてgooの、下のURLより、 返すというのが、「借りていたものを返す」ではなく、 「リクエストされた質問に対し返答する」という意味での「返す」であることであり、 プログラミングでは、expression(=処理?)の結果を返すことだという理解をしています。 http://okwave.jp/qa/q2574681.html しかし、返された処理結果は、どこに返されるのでしょうか? 下のコードを例に私なりの解釈をします。 function menseki(r){ var m = 3.14 * r * r; return m; } var m = menseki(5); http://www.ajaxtower.jp/js/function/index4.htmlより javascriptの下のコードでは、ルーチンにたいして、サブルーチン(=function menseki)があり、 変数mは、関数内に有るため、スコープがローカル(=変数内)にあります。(あってますか?) このままだと、変数mは、サブルーチンの処理が終わった後、メモリから「mは3.14*r*rだよ」という情報が消されてしま宇野だともいます。 (javascriptはgarbage collectorがあり、また関数内の変数はローカルなので、関数内でしか使えないため。) でも、この変数mを、中身(=3.14*r*r)を維持したまま、関数外で使いたいときに、 変数mのreturnをすることで、メモリに 「mは3.14*r*r。 呼び出し元は、一番上のルーチンだから、実質的にはグローバル変数になります。」 とおしえてることでしょうか? また、呼び出し元は何を基準に決定されるのでしょうか?

  • 隔絶されているサブルーチン間の通信の方法

    以下のようなFortranのサブルーチンとモジュールがあります。これを見ると、サブルーチンA,Bはモジュールa,bが別なのでデータ的に隔絶されていることになります。もし、このような場合、サブルーチンA,Bの間で何らかの変数を共有するようなことをしたい場合、どのような方法があるでしょうか。サブルーチンの引数を使うのは混乱の原因になりそうなので、できればmoduleの方で処理できないかと思うのですが。 混乱しそうなところなので、やり方をいろいろ比較して見てみたいと思います。Cではグローバル変数のように全体で共有する変数を用意するのかなと思いますが。 module a end module module b end module subroutine A use a end subroutin B use b end Fortranについてはここでは特設会議室はありませんが、どこかいいところがあるでしょうか。Cの専門家はいろんなことに通じていると思うのでここにお尋ねしました。よろしくお願いします。

  • Javascriptのエラー

    HPのurlが代入されているPerlの変数$urlをJavascriptに引数として渡し、HPを別ウインドウに表示したいのですが、 エラー ')'が抜けているとなりエラーになります <SCRIPT LANGUAGE="JavaScript"> <!-- function abc(def) { new1 = window.open("def", "", "width=400, height=310"); new1.moveTo(0,0); new1.document.close(); } //--> </SCRIPT> <A HREF=\"javascript:abc($url)\">別ウィンドウに表示</A> 何処が間違っているのですか。

  • switch文caseについて

    switchのcaseについてですが、数字を直接記述せずに、const変数に値を代入して使用出来ますか? 例) const int A = 1; const int B = 2; switch(suuti){ case A: 処理; break; case B: 処理; break; } コンパイルすると、「case 式は、整数型定数でなければなりません。」と出てきてしまうのですが、直接数値を記述しないといけないのでしょうか? よろしくお願いします。

  • switch の範囲指定

    switch文で以下のように書いた時に処理はCを実行するのですが、 変数a が 0~9の時に こうしますよ と範囲がまだ狭い時はこのように書いても処理はできると思いますが 変数a の範囲が 0~99だった場合、いちいちcase を100回書いて(defaultを使えば処理は減るだろうけど) と数字を100回書かないといけないのはとても面倒だと思うのです。 そこで以下のようにifを使わずにswitchを使って範囲を指定する方法はありませんか? //ifを使った場合の範囲指定 if( ( 0 <= a ) && ( a < 25 ) ){ //略 } else if( ( 25 <= a ) && ( a < 50 ) ){ //略 } else if( ( 50 <= a ) && ( a < 75 ) ){ //略 } else if( ( 75 <= a ) && ( a < 100 ) ){ //略 } //ソース int a = 6; switch( a ){   case 0: case 1:     //処理A     break;   case 2: case 3: case 4:     //処理B     break;   case 5: case 6:     //処理C     break;   case 7: case 8: case 9:     //処理D     break; }

  • javascript 変数名の連結をしたい

    javascriptで、ある同じ処理をいくつも書くのですが いくつも同じものを書かず、for等で繰り返させたいのです。 また、その際に変数名をばらばらにしたいのですが そのやり方がいまひとつ良く分かりません。 //同じ処理を繰り返さず・・・ area1_flagA = 1 area1_flagB = 1 area1_flagC = 1 area1_flagD = 1 //繰り返し処理で var area_array = [A,B,C,D]; for (var i in area_array){  area1_flag+i(←連結したいができない) = 1 } ※実際はもう少し複雑な処理になります そこで、変数名に変数名を連結させようとしたのですが うまくいきませんでした。 どうすれば、上記のような 繰り返し処理を施すことが可能でしょうか。

  • Javascriptグローバル変数の値引き継ぎ

    Javascriptで関数関係なしに処理した値を引き継ぎたいのですが 可能でしょうか? 例: test = 0; //引き継ぎたい変数 function hoge(){ //処理  a = function(){ //処理 test = 1;  } } hoge; alert(test); //「1」にしたい(関数内で処理した値を保持したい)

  • マクロ教えてください

    マクロについての質問です。 サブルーチン間ですべての変数を共有する方法ってありませんか。 Call Prg(A,B,C) というやり方は知ってますが、サブルーチンの数が結構ありますし変数も多いため、 もっとスマート?にできないかなと思いまして。 よろしくお願いします。

  • 変数の範囲によって場合わけしたいのですが、switchで可能でしょうか?

    変数の範囲によって場合わけしたいのですが、switchで可能でしょうか?あるいは、ifでないとだめでしょうか?やりたいのは、変数を$aとすると、 0<a<1 なら、処理1 1<a<2 なら、処理2 というのが10個くらいあります。ifだと長くなるのでできればswitchでやりたいのですが、可能でしょうか?条件をどうやって書けばいいのでしょうか?リファレンスを見ても乗っていませんでした・・ <?php switch ($a) { case (0<$a<1): 処理1; case (1<$a<2): 処理2; ・ ・ ・ } ?> という書き方はできるのでしょうか?あるいは不可なら、簡単な方法はあるでしょうか?

    • ベストアンサー
    • PHP
  • C言語switch文のcase記述について

    switch文のcaseがたくさんあるため、ソースファイルとして外だししたいと思っています。 ただ、switch文そのものはきちんと記述し、caseの部分だけを外だしできればと考えています。 例 switch (a) { case 1: case 2: : :(たくさん続く) 処理A; case 100; case 101; : : (これまたたくさん続く)  処理B; } を switch (a) { A_WO_SURU_JOUKEN  /* この記述を外だししたい */ 処理A; B_WO_SURU_JOUKEN /* 同じく */ 処理B; } といった具合にしてみたいということです。 ヘッダファイルを使う、defineでの記述で可能といったものを教えていただければ幸いです。

専門家に質問してみよう