こんにちは。
作成したプログラムについての資料を作成しています。
ステップ数などを記述しますが、その中に「分岐数」があります。
そこで気になったのが、switch文の場合は、
一つのswitch文で1カウントアップでよいものでしょうか?
それとも、case毎にカウントアップになるのでしょうか?
ちなみに、if文の場合、
if~else~だったら、1カウントアップで、
if~elseif~だったら、2カウントアップするのかな、
と考えています。
一般的に、というか、皆さんでしたら、どのようにカウントしますか??
よろしくお願いします。
No.3
- 回答日時:
switch ( 式 )文の「式」によって違います。
評価される「式」が8ビット程度であれば現在のコンパイラはテーブルを生成して全てのcaseに対して同じステップで分岐することが出来るでしょう。16ビット、32ビットでも連続した値であればテーブルを生成するかもしれません。
また、コンパイラの性能によっては、かなりの最適化をするのでソースレベレでのステップの判断はほぼ不可能でしょう。アセンブリ言語で出力してその部分見てみると好いでしょう。
そんなに厳密に算出しなければいけない資料でもないので、単純にソースレベルでカウントしたもので、OKと思っています。
ありがとうございました!
No.2
- 回答日時:
どのレベルの"分岐"を考えるかによると思います。
フローチャートを書いてみて枝分かれがいくつになるかを考えるといいかと思います。とは言うもののどの"レベル"でフローチャートを書くかによっても枝分かれの数は大きく変わりますし。。。
結論的には資料としてどのレベルの"分岐"を求められているかによります。
例えば以下のようなプログラムがあったとします。単純にifを数えると相当な数になると思います。しかしmain()を見るとtest()が成功するか失敗するかによってexecute()が実行されるかどうかが決まっています。仮にこのプログラムの目的とする仕事がexecute()にあるのでしたらtest()内のifは無視してmain()内で分岐1つというカウントにした方がスマートです。
bool test()
{
if(aa)
return false;
if(bb)
return false;
if(cc)
return false;
if(dd)
return false;
return true;
}
int main()
{
if(test() == false)
return -1;
execute();
return 0;
}
;;;;;;
私見ではステップ数とか分岐とか調べても意味がないと思うのですが。。。古い人ほど書かせたがるのですよね。MFCやATLなどのライブラリを使っているときは「どうやって計算するんだ!」って叫びたくなります。
古い人ほど・・・、確かにそうですねぇ。
「とりあえず、出しとけ」位のレベルの資料かと・・・。
なので、単純にNo.1さんの数え方でやってみようと思います。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vba GetAsyncKeyState関数について 1 2023/08/24 12:08
- C言語・C++・C# c言語 1 2022/11/09 13:05
- C言語・C++・C# C言語 3 2022/11/09 13:27
- 英語 "consider doing something"において"doing"の要否の判断方法について 2 2023/07/04 04:36
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- JavaScript jsで、配列内の文章を改行する際どのようにすればいいですか。 3 2022/07/05 20:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
return trueとreturn falseの用...
-
正規表現で複数マッチ条件で悩...
-
フォームの入力チェックをする...
-
コピペを禁止するtextarea
-
slickのレスポンシブ > center...
-
onSubmit=の後ろは複数可能でし...
-
未入力のラジオボタンに、alert...
-
ドラッグ&ドロップ禁止について
-
一度しか押せないボタンについて
-
ラジオボタンのNullチェック
-
Selectボックスの幅を自動で広...
-
javascript作成してます。ラジ...
-
Pythonで会員サイトの自動ログ...
-
現在時刻を取得してフォームのs...
-
特定<table>内の<td>の色を変える
-
hiddenのvalueの値を変えたい
-
ラジオボタンにタブインデック...
-
javascriptで入力禁止文字をチ...
-
jspでのArrayListの値の表示
-
【UWSC】HTML内のある部分を抽...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
return trueとreturn falseの用...
-
正規表現で複数マッチ条件で悩...
-
JavaScriptde途中で、「exit」...
-
slickのレスポンシブ > center...
-
COBOLの数字チェック
-
チェックボックスの有無判定
-
フォームの入力チェックをする...
-
Visual Studioのデザインでの非...
-
Tabキーでのカーソルの移動...
-
ツリービューのチェックボック...
-
ドロップダウンリストボックス...
-
コピペを禁止するtextarea
-
ラジオボタンのNullチェック
-
未入力のラジオボタンに、alert...
-
form の onSubmit がコールされ...
-
分岐数といえば
-
JSのみで入力→確認→メールで送...
-
テキストボックスに数字しか入...
-
JavaScript ログアウト処理
-
リロードしないようにするには
おすすめ情報