ビデオ: Age of Deceit (2) - Hive Mind Reptile Eyes Hypnotism Cults World Stage - Multi - Language 2024
Java開発者は、ブロックアクセスの問題が発生したときにアプリケーションが誤動作する原因を突き止めるのに問題が発生することがよくあります。基本的なガイドラインは、ブロック内に作成する変数はそのブロック内でのみ定義されるということです。たとえば、次のコードを見ると、典型的なブロックアクセスのシナリオが表示されます。
//ブロック内に変数を作成します。 for(int i = 0; i <10; i ++)//その変数の値を表示します。システム。でる。 println( "iの値は" + i "です。 //ブロック外のアクセスは機能しません。システム。でる。 println( "iの値は" + i "です。
この例では、forループ内のiの値(ブロックの一種)が問題なく表示されます。しかし、変数が定義されていないため、ブロックの外側にあるiにアクセスしようとすると受け入れられません。コンパイラはこのエラーをキャッチします。
<! - 1 - >変数がアプリケーション内およびブロック内に定義されている場合、もう1つの潜在的な問題が発生します。このような状況では問題が発生する可能性があるため、新しいバージョンのJavaでは、ここに示すようなコードを使用できません:
public static void main(String [] args){//変数を定義します。 int i = 0; //ブロック内に変数を作成します。 for(int i = 0; i <10; i ++)//その変数の値を表示します。システム。でる。 println( "iの値は" + i "です。 //ブロック外のアクセスは機能しません。システム。でる。 println( "iの値は:" + i);}
コンパイラは、足で自分を撮影することを常に妨げるわけではありません。多くの状況で、開発者は変数を使って何かを行い、その結果を理解しません。たとえば、次のコードはJavaでは完全に正当です。
public static void main(String [] args){//変数を定義します。 int i = 0; //ブロック内に変数を作成します。 for(i = 0; i <10; i ++)//その変数の値を表示します。システム。でる。 println( "iの値は" + i "です。 //ブロック外のアクセスは機能しません。システム。でる。 println( "iの値は" + i);}
forループは、forループ宣言内の条件のために0〜9の値を表示します。システムへの最後の呼び出し。でる。 println()は、一部の開発者が期待するように、0または9ではなく10の値を表示します。
<! - 3 - >宣言のi ++部分が発生し、条件が評価されるため、条件が偽になるためには10でなければならないため、iの最終値は9でなく10です。
重要なのは、変数にアクセスできるかどうか、およびブロックから出るときに値に含める値を決定するために、ブロックが変数とどのように連動するかを考慮する必要があることです。