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 |
|
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk