Bagikan melalui


Pernyataan (Panduan Pemrograman C#)

Tindakan yang diambil program dinyatakan dalam pernyataan. Tindakan umum termasuk mendeklarasikan variabel, menetapkan nilai, memanggil metode, mengulangi koleksi, dan mencabangkan ke satu atau blok kode lain, tergantung pada kondisi tertentu. Urutan di mana pernyataan dijalankan dalam program disebut alur kontrol atau alur eksekusi. Alur kontrol dapat bervariasi setiap kali program dijalankan, tergantung pada bagaimana program bereaksi terhadap input yang diterimanya pada waktu proses.

Pernyataan dapat terdiri dari satu baris kode yang berakhiran titik koma, atau serangkaian pernyataan baris tunggal dalam satu blok. Blok pernyataan diapit dalam tanda kurung {} dan dapat berisi blok berlapis. Kode berikut menunjukkan dua contoh pernyataan baris tunggal, dan blok pernyataan multibaris:

    public static void Main()
    {
        // Declaration statement.
        int counter;

        // Assignment statement.
        counter = 1;

        // Error! This is an expression, not an expression statement.
        // counter + 1;

        // Declaration statements with initializers are functionally
        // equivalent to  declaration statement followed by assignment statement:
        int[] radii = [15, 32, 108, 74, 9]; // Declare and initialize an array.
        const double pi = 3.14159; // Declare and initialize  constant.

        // foreach statement block that contains multiple statements.
        foreach (int radius in radii)
        {
            // Declaration statement with initializer.
            double circumference = pi * (2 * radius);

            // Expression statement (method invocation). A single-line
            // statement can span multiple text lines because line breaks
            // are treated as white space, which is ignored by the compiler.
            System.Console.WriteLine($"Radius of circle #{counter} is {radius}. Circumference = {circumference:N2}");

            // Expression statement (postfix increment).
            counter++;
        } // End of foreach statement block
    } // End of Main method body.
} // End of SimpleStatements class.
/*
   Output:
    Radius of circle #1 = 15. Circumference = 94.25
    Radius of circle #2 = 32. Circumference = 201.06
    Radius of circle #3 = 108. Circumference = 678.58
    Radius of circle #4 = 74. Circumference = 464.96
    Radius of circle #5 = 9. Circumference = 56.55
*/

Jenis pernyataan

Tabel berikut mencantumkan berbagai jenis pernyataan di C# dan kata kunci terkaitnya, dengan tautan ke topik yang menyertakan informasi selengkapnya:

Kategori Kata kunci / catatan C#
pernyataan deklarasi Pernyataan deklarasi memperkenalkan variabel atau konstanta baru. Deklarasi variabel dapat secara opsional menetapkan nilai ke variabel. Dalam deklarasi konstanta, penugasan diperlukan.
Pernyataan Ekspresi Pernyataan ekspresi yang menghitung nilai harus menyimpan nilai dalam variabel.
Pernyataan seleksi Pernyataan pilihan memungkinkan Anda untuk bercabang ke bagian kode yang berbeda, tergantung pada satu atau beberapa kondisi yang ditentukan. Untuk informasi selengkapnya, lihat topik berikut ini:
Pernyataan perulangan Pernyataan perulangan memungkinkan Anda mengulangi koleksi seperti array, atau melakukan serangkaian pernyataan yang sama berulang kali hingga kondisi tertentu terpenuhi. Untuk informasi selengkapnya, lihat topik berikut ini:
Pernyataan loncatan Pernyataan lompat mentransfer kontrol ke bagian kode lain. Untuk informasi selengkapnya, lihat topik berikut ini:
Pernyataan penanganan pengecualian Pernyataan penanganan pengecualian memungkinkan Anda untuk pulih dengan anggun dari kondisi luar biasa yang terjadi pada waktu proses. Untuk informasi selengkapnya, lihat topik berikut ini:
  • lempar
  • try-catch
  • try-finally
  • try-catch-finally
checked dan unchecked Pernyataan checked dan unchecked memungkinkan Anda menentukan apakah operasi numerik jenis integral diizinkan untuk menyebabkan luapan ketika hasilnya disimpan dalam variabel yang terlalu kecil untuk menahan nilai yang dihasilkan.
Pernyataan await Jika Anda menandai metode dengan pengubah asinkron, Anda dapat menggunakan operator menunggu dalam metode tersebut. Ketika kontrol mencapai ekspresi await dalam metode asinkron, kontrol kembali ke pemanggil, dan kemajuan dalam metode ditangguhkan hingga tugas yang ditunggu selesai. Ketika tugas selesai, eksekusi dapat dilanjutkan dalam metode.

Untuk contoh sederhana, lihat bagian "Metode Asinkron" dari Metode . Untuk informasi selengkapnya, lihat Pemrograman Asinkron dengan asinkron dan menunggu.
Pernyataan yield return Iterator melakukan perulangan kustom pada koleksi, seperti daftar atau array. Iterator menggunakan pernyataan yield return untuk mengembalikan setiap elemen satu per satu. Ketika pernyataan yield return tercapai, lokasi saat ini dalam kode diingat. Eksekusi dimulai ulang dari lokasi tersebut ketika iterator dipanggil lain kali.

Untuk informasi selengkapnya, lihat Iterator.
Pernyataan fixed Pernyataan tetap mencegah pengumpul sampah merelokasi variabel yang dapat dipindah. Untuk informasi selengkapnya, lihat tetap .
Pernyataan lock Pernyataan kunci memungkinkan Anda membatasi akses ke blok kode hanya untuk satu utas pada satu waktu. Untuk informasi selengkapnya, lihat kunci .
Pernyataan berlabel Anda dapat memberikan label pada pernyataan dan kemudian menggunakan kata kunci goto untuk melompat ke pernyataan berlabel. (Lihat contoh di baris berikut.)
Pernyataan kosong Pernyataan kosong terdiri dari satu titik koma. Ini tidak melakukan apa pun dan dapat digunakan di tempat-tempat di mana pernyataan diperlukan tetapi tidak ada tindakan yang perlu dilakukan.

Pernyataan deklarasi

Kode berikut menunjukkan contoh deklarasi variabel dengan dan tanpa penugasan awal, dan deklarasi konstan dengan inisialisasi yang diperlukan.

// Variable declaration statements.
double area;
double radius = 2;

// Constant declaration statement.
const double pi = 3.14159;

Ekspresi pernyataan

Kode berikut menunjukkan contoh pernyataan ekspresi, termasuk penugasan, pembuatan objek dengan penugasan, dan pemanggilan metode.

// Expression statement (assignment).
area = 3.14 * (radius * radius);

// Expression statement (result discarded).
int x = 0;
x++;

// Expression statement (method invocation).
System.Console.WriteLine();

// Expression statement (new object creation).
System.Collections.Generic.List<string> strings =
    new System.Collections.Generic.List<string>();

Pernyataan kosong

Contoh berikut menunjukkan dua penggunaan untuk pernyataan kosong:

void ProcessMessages()
{
    while (ProcessMessage())
        ; // Statement needed here.
}

void F()
{
    //...
    if (done) goto exit;
//...
exit:
    ; // Statement needed here.
}

Pernyataan yang disematkan

Beberapa pernyataan seperti pernyataan iterasiselalu memiliki pernyataan tersemat yang mengikutinya. Pernyataan yang disematkan ini dapat berupa satu pernyataan atau beberapa pernyataan yang diapit oleh tanda kurung {} dalam blok pernyataan. Bahkan pernyataan yang disematkan baris tunggal dapat ditempatkan dalam tanda kurung {}, seperti yang ditunjukkan dalam contoh berikut:

// Recommended style. Embedded statement in  block.
foreach (string s in System.IO.Directory.GetDirectories(
                        System.Environment.CurrentDirectory))
{
    System.Console.WriteLine(s);
}

// Not recommended.
foreach (string s in System.IO.Directory.GetDirectories(
                        System.Environment.CurrentDirectory))
    System.Console.WriteLine(s);

Pernyataan yang disematkan yang tidak diapit dalam tanda kurung {} tidak dapat menjadi pernyataan deklarasi atau pernyataan berlabel. Ini ditunjukkan dalam contoh berikut:

if(pointB == true)
    //Error CS1023:
    int radius = 5;

Letakkan pernyataan yang disematkan dalam blok untuk memperbaiki kesalahan:

if (b == true)
{
    // OK:
    System.DateTime d = System.DateTime.Now;
    System.Console.WriteLine(d.ToLongDateString());
}

Blok pernyataan berlapis

Blok pernyataan dapat ditumpuk, seperti yang ditunjukkan dalam kode berikut:

foreach (string s in System.IO.Directory.GetDirectories(
    System.Environment.CurrentDirectory))
{
    if (s.StartsWith("CSharp"))
    {
        if (s.EndsWith("TempFolder"))
        {
            return s;
        }
    }
}
return "Not found.";

Pernyataan yang tidak dapat dijangkau

Jika kompilator menentukan bahwa alur kontrol tidak pernah dapat mencapai pernyataan tertentu dalam keadaan apa pun, itu akan menghasilkan peringatan CS0162, seperti yang ditunjukkan dalam contoh berikut:

// An over-simplified example of unreachable code.
const int val = 5;
if (val < 4)
{
    System.Console.WriteLine("I'll never write anything."); //CS0162
}

Spesifikasi bahasa C#

Untuk informasi selengkapnya, lihat bagian Pernyataan dari spesifikasi bahasa C#.

Lihat juga