pengambilan data skop multiple dalam C#

permisi kak saya mau bertanya seputar c#

 // Demonstrasi skop blok.
using System;

class DemoSkop
{
    static void Main()
    {
        int x; // di kenali oleh semua kode di dalam Main()
        int z;

        z = 2;
        x = 10;
        if  ((z == 2) && ( x == 10) )
        { // mulai skop baru
            int y = 20; // hanya dikenali di dalam blok ini
            int m = 5;
            byte l = 50;


            // x,l dan y keduanya dikenali di sini.
            Console.WriteLine("x dan y: " + x + " " + y);
            Console.WriteLine("x ditambah y: " + (x + y));
            Console.WriteLine("x dikurangi y: " + (x - y));
            Console.WriteLine("x dikali y: " + (x * z));
            Console.WriteLine("x dibagi m: " + (x / m));
            Console.WriteLine("l dibagi x dikali m: " + (l / x) * m);
            x = y * 2;
        }

        { // mulai skop baru ke 2
            int a = 3;
            int b = 4;

            x = 10; // --?? kenapa harus di definiskan padahal di main -
            //sudah ada,apabila tidak maka nilai nya akan berubah jadi 40 ??.

            // a dan b keduanya dikenali di sini.
            Console.WriteLine("-------------------------");
            Console.WriteLine("x dan a: " + x + " " + a);
            Console.WriteLine("b ditambah a: " + (b + a));
            Console.WriteLine("x dikurangi b: " + (x - b));

        }
        // y = 100; // Error! y tidak dikenal di sini.
        // x masih dikenali di sini

        Console.WriteLine("x adalah " + x);
    }
}

sebelumnya saya sudah membuat 1 sekop luar dan 2 skop dalam,hal ini memungkinkan kita buat membaca variable yang ada di dalam blok skop dalam no.1 dan 2 dalam kasus ini saya membuat dua buah blok dalam skop yang berbeda (skop dalam no. 1 & 2) namun apabila skop dalam no.2 tidak di beri nilai x = 10, maka output x = 40 ?,tidak seperti skop dalam no.1 nilai x tetap 10 karena sudah di definisikan di main. mohon bantuanya kak :)

avatar adamkenway007
@adamkenway007

13 Kontribusi 1 Poin

Diperbarui 6 tahun yang lalu

2 Jawaban:

Jawaban Terpilih

 x = y * 2;

ini yg ngebuat x nya jd 40.

avatar felixlambet
@felixlambet

16 Kontribusi 8 Poin

Dipost 6 tahun yang lalu

terimah kasih kak kayaknya saya sendiri yang kurang teliti

avatar adamkenway007
@adamkenway007

13 Kontribusi 1 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban