0

私はコンピュータサイエンス(遠隔学習)を勉強していますが、教科書に表示されている回答はありません。これは線形探索アルゴリズムと短絡評価に関するものです。次のように本の中で線形検索アルゴリズムが書き込まれリニアサーチと短絡評価(実行時エラー)

:!= 0
WHILEポインタ< LengthOfListし、リスト[ポインタ]

ポインタを= searchedfor:
------は、1を追加します。ポインタに ENDWHILE


IFポインタ> = LengthOfList THEN:ELSE
------- PRINT( "アイテムがリストにない")

------- PRINT(」アイテムは場所 " +ポインタ)余分な情報ボックスで
ENDIF


それは短絡評価の話とブール演算子で連結された複数の部品がある場合、それが必要な場合はどのようにコンピュータにのみ第二の条件を評価します。条件1と条件2(短絡回路評価を使用する場合)条件1が偽の場合、条件2は評価されません。

しかしそれは、あなたは短絡評価は、ラインで使用していなかった場合に発生する可能性のある実行時エラー見つけることができ、」
を尋ねる:!

WHILEポインタ< LengthOfListし、リスト[ポインタ] = "

私は過去2週間、さまざまなアイテムを何度も繰り返していますが、答えを探して検索しましたが、ランタイムエラーが発生する可能性があります。誰もがこのエラーを見つけてそれを私に説明できるかどうか見てみることができますか?どうもありがとう。

+0

ここに特定の例外がスローされますか?例えば、ヌルポイントレセプション。それとも出力に問題がありますか? –

答えて

0

ここで質問を再評価する必要があると思います。最初に、短絡評価を定義しましょう。短絡評価は、&&(AND演算子)と||(OR演算子)のような論理演算子の使用であり、1つの引数の結果によって2つの引数のうちの1つのみがチェックされる必要があります。例えばABが条件であるこれらの例を検討Aが偽の場合A && Bの全体的な結果はどんなB偽でないため、短絡評価によると

if(A && B) 

は、その後、Bがチェックする必要がありませんif文の本文はスキップされます。ここで

if(A || B) 

Aが真である場合A || Bの全体的な結果は何の問題であり、文の本体が実行された場合にどのようなB真ではありませんので、短絡評価によると、その後、Bがチェックする必要がありません。

ここで、短絡の評価がでない場合には、を使用するとどうなるかという質問があります。だから問題は、違った方法で記述されたアルゴリズムのエラーについて尋ねることです(あなたが上に書いたアルゴリズムはそのままで完全にうまくいきます)。本質的には、whileループの両方の条件が各反復でチェックされると、どのようなエラーが発生する可能性がありますか?今のところ、ランタイムエラーを防止するのは、最後の反復では、ArrayIndexOutOfBoundsExceptionを防ぐために最初の条件だけがチェックされるということです。 whileループの最後の反復で両方の条件がチェックされた場合、プログラムが配列の境界外にある要素にアクセスしようとしているため、実行時エラーが発生します。

+0

ありがとうございました!最終的には、プログラムが存在しないインデックスにアクセスしようとするのは理にかなっています。感謝。 – PyVan

+0

いつでも、回答が役に立ったら、受け入れ済みとしてマークするようにしてください。世話をする。 –

関連する問題