Bagikan melalui


pernyataan switch

Transfer kontrol ke blok pernyataan yang berbeda dalam isi pengalihan tergantung pada nilai pemilih.

[Atribut] switch( Selector ) { case 0 : { StatementBlock; } break; case 1 : { StatementBlock; } break; case n : { StatementBlock; } break; default : { StatementBlock; } break;

Parameter

Atribut

Parameter opsional yang mengontrol bagaimana pernyataan dikompilasi. Ketika tidak ada atribut yang ditentukan, pengkompilasi dapat menggunakan sakelar perangkat keras atau memancarkan serangkaian pernyataan if .

Atribut Deskripsi
flatten Kompilasi pernyataan sebagai serangkaian pernyataan if , masing-masing dengan atribut flatten .
cabang Kompilasi pernyataan sebagai serangkaian pernyataan if masing-masing dengan atribut cabang . Catatan: Saat Anda menggunakan Model Shader 2.x atau Model Shader 3.0, setiap kali Anda menggunakan percabangan dinamis, Anda menggunakan sumber daya. Jadi, jika Anda menggunakan percabangan dinamis secara berlebihan ketika Anda menargetkan profil ini, Anda dapat menerima kesalahan kompilasi.
forcecase Paksa pernyataan pengalih di perangkat keras. Catatan: Memerlukan perangkat keras tingkat fitur 10_0 atau yang lebih baru.
Panggilan Badan kasus individu dalam sakelar akan dipindahkan ke subroutine perangkat keras dan sakelar akan menjadi serangkaian panggilan subroutine. Catatan: Memerlukan perangkat keras tingkat fitur 10_0 atau yang lebih baru.

Pemilih

Variabel. Pernyataan kasus di dalam tanda kurung kurawal masing-masing akan memeriksa variabel ini untuk melihat apakah SwitchValue cocok dengan CaseValue tertentu.

StatementBlock

Satu atau beberapa pernyataan.

Keterangan

[branch] switch(a)
{
    case 0:
        return 0; 
    case 1:
        return 1; 
    case 2:
        return 3; 
    default:
        return 6; 
}

Setara dengan:

[branch] if( a == 2 )
    return 3;
else if( a == 1 )
    return 1;
else if( a == 0 )
    return 0;
else
    return 6;

Berikut adalah contoh penggunaan atribut forcecase dan kontrol alur panggilan:

[forcecase] switch(a)
{
    case 0:
        return 0; 
    case 1:
        return 1; 
    case 2:
        return 3; 
    default:
        return 6; 
}

[call] switch(a)
{
    case 0:
        return 0; 
    case 1:
        return 1; 
    case 2:
        return 3; 
    default:
        return 6; 
}

Persyaratan

Persyaratan Nilai
Header
Urlmon.h

Lihat juga

Kontrol Alur