「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

循環参照

pointこの用語のポイント

point参照がループしているよ

pointいつまでたってもゴールに辿りつかないよ

スポンサーリンク

簡単に書くよ

循環参照(読:ジュンカンサンショウ 英:circular reference)とは

「その指示に従うと、ずっとたらい回しにされますよ!」な状態のこと。
もう少し具体的に書くと

Aには「Bを見ろ」と書いてあって、Bには「Aを見ろ」と書いてあるように、いつまでたってもゴールに辿りつけないような指示になっていること

です。


image piyo

詳しく書くよ

「循環」+「参照」で「循環参照」です。

循環参照

循環の意味は「行ったのが、ぐるっと戻ってきて、それが繰り返されること」ね。
ぐーるぐーるなループです。

循環参照2

参照は参照です。
少し意訳していますが、今回は「あっちを見ろ!」な指示と解釈してください。

循環参照3

以上を踏まえて

「あっちを見ろ!」な指示がずっとたらい回しされて、いつまでたっても何を見ればいいのか決まらない状態

が「循環参照」です。
Aには「Bを見ろ」と書いてあって、Bには「Aを見ろ」と書いてあるような状態です。

循環参照4

例えば、そうですね。

ピヨ太君がピヨ子さんに「今日の晩御飯は何?」と聞きました。

循環参照5

ピヨ子さんは「ピヨ太ママに聞いて」と答えました。

循環参照6

ピヨ太君はピヨ太ママに「今日の晩御飯は何?」と聞きました。

循環参照7

ピヨ太ママは「ピヨ子さんに聞いて」と答えました。

循環参照8

ピヨ太君は再びピヨ子さんに「今日の晩御飯は何?」と聞きました。

循環参照9

ピヨ子さんは再び「ピヨ太ママに聞いて」と答えました。

循環参照10

これでは、いつまでたっても今日の晩御飯が何か分かりませんよね。
ピヨ太君はピヨ子さんとピヨ太ママの間をずっとたらい回しにされます。

循環参照11

このような状況が循環参照です。

循環参照12

もう少しコンピュータっぽい例も書いておきましょう。

ピヨ太君は、ExcelのA1セル

=B1+1

と書きました。
これは

B1セルの値に「1」を足したのがA1セルに入る値だよ

を意味します。

循環参照13

さらに、B1セルに

=A1+1

と書きました。
これは

A1セルの値に「1」を足したのがB1セルに入る値だよ

を意味します。

循環参照14

さて、それでは「A1」セルに入る値は何でしょう?

A1セルに入る値はB1セルの値によって決まります。
A1セルに入る値を知るには、B1セルを見に行く必要があります。
A1セルはB1セルを「参照」しているからです。

循環参照15

B1セルに入る値はA1セルの値によって決まります。
B1セルに入る値を知るには、A1セルを見に行く必要があります。
B1セルはA1セルを「参照」しているからです。

循環参照16

A1セルに入る値はB1セルの値によって決まります。
A1セルに入る値を知るには、B1セルを見に行く必要があります。
A1セルはB1セルを「参照」しているからです。

循環参照17

以下、ぐーるぐーると終わることなく続きます。
いつまでたってもA1セル(とB1セル)に入る値は決まりません。

循環参照18

このような

たらい回しされ続ける参照指定

が循環参照です。

今回の例では2つの場所をたらい回しされましたが、3つ以上のたらい回しで循環参照になることもあります。
例えば

A1セル→「=B1+1」
B1セル→「=C1+1」
C1セル→「=A1+1」


のように書けば、A1→B1→C1→A1……と、たらい回しされ続けます。

循環参照19

あるいは場所が1つしかなくても循環参照になる場合があります。
例えば、A1セルに

=A1+1

と書けば、A1→A1→A1……と、たらい回しされ続けます。

循環参照20

「循環参照になっているぞ!」なエラーが出たら、参照先を辿ってみてください。
きっと、どこかで輪っかになっている(前の場所に戻る)はずです。


image piyo2

一言でまとめるよ

まぁ「循環参照」って単語が出てきたら「終わりなき、たらい回し状態なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像063
書籍画像012


書籍画像
わわわ説明術コラム
宣伝だよ
7日間でハッキングをはじめる本 TryHackMeを使って身体で覚える攻撃手法と脆弱性
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
サイバー忍者入門 忍者・スパイ・軍隊・ハッカーに学ぶ フルスタック・ハッキング