2007年01月23日
川俣晶の縁側PCホビイズムtotal 3594 count

補足・計算型goto文を持たないCで、複雑な条件判断と分岐をたった1行で行う方法

Written By: 川俣 晶連絡先

 テスト文書ではありますが、「【テスト文書】計算型goto文・複雑な条件判断と分岐をたった1行にまとめられる超効率構文!!」関連の話題が既に動いてしまっています。

 計算型goto文についての話題を書いたとき、Cならどう書けるのか……ということを少し書きましたが、それを考えてくれた素晴らしい人がいます。

 詳細は、「メーリングリストのこの話題のスレッド」(spamのアドレス収集ロボット避けに、認証を掛けています。読むためにはID=guest@guest, password=guestで認証してください)にあります。

関数へのポインターとテーブルを使った方法 §

 関数へのポインターとテーブルを使うことで、たった1つの文によって複数の場合分けを含む条件判断と分岐を行うことができます。

 呼び出し先が実行時にならないと確定しないケース(計算型goto文と同様)も、DLLの動的参照で考えてくれました。

3項演算子を使った方法 §

 というわけで、私が考えた3項演算子を使った方法です。

 /* ここ! */の行が、複数の条件判断と分岐を1の文で行っています。

 ソースはVisual Studio 2005によるC++ Win32 コンソールアプリケーションのプロジェクトですが、見ればすぐ意味が分かるでしょう。

#include "stdafx.h"

void gu()

{

    puts("gu");

}

void choki()

{

    puts("choki");

}

void par()

{

    puts("par");

}

int _tmain(int argc, _TCHAR* argv[])

{

    for( int a =1; a<=3; a++ )

    {

        a == 1 ? gu() : a == 2 ? choki() : par(); /* ここ! */

    }

    return 0;

}

 もっと冴えたアイデア(あるいは、もっと突飛なアイデア)がある方はいませんか?

 他の言語も含めて。

Facebook

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20070123134745
サイトの表紙【PCホビイズム】の表紙【PCホビイズム】のコンテンツ全リスト 【PCホビイズム】の入手全リスト 【PCホビイズム】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.