buat larik angka yang diperlukan Anda & gunakan foreach
PaulF
2
Bisakah memberikan detail lebih lanjut sehingga kami dapat membantu memberikan solusi yang relevan? Seberapa sering Anda berencana melewatkan nomor? Berapa angka yang Anda harapkan untuk dilewati? Bagaimana Anda tahu nomor yang dilewati? Mengapa Anda melewatkan angka? Apa dan bagaimana Anda meng-hardcoding ini?
Corentin Pane
itu tidak semudah yang saya pikirkan pada awalnya untuk menemukan duplikat
Mong Zhu
Jawaban:
13
Anda bisa menggunakan array untuk memberikan angka yang Anda inginkan seperti ini
int[] loop =newint[]{1,2,4,5,7};foreach(int i in loop)Console.WriteLine(i);
Atau lakukan sebaris yang tidak bersih ketika daftar nilai tumbuh menurut saya
foreach(int i innewint[]{1,2,4,5,7})Console.WriteLine(i);
Yang kedua lebih bersih bagi saya - array hanya dalam ruang lingkup selama loop. Juga, untuk membuatnya benar-benar "bersih", Anda dapat menghapus intdeklarasi, karena kompilator akan menentukan itu dari konten.
Jelas jawaban yang tepat untuk kasus umum adalah menggunakan foreachatau pencarian yang diindeks seperti yang ditunjukkan dalam jawaban lain, tetapi hanya demi kelengkapan:
Anda dapat menggunakan pernyataan apa pun dalam afor ekspresi, termasuk kondisional. Dengan pemikiran itu, mudah untuk membangun kenaikan bersyarat atau bahkan kondisional lengkap (mesin negara?) Untuk set yang diperlukan:
for(int i =1; i <=7; i +=(i ==5|| i ==2)?2:1){Console.Write(i);}// Output: 12457for(int i =1; i >0; i = i switch{1=>2,2=>4,4=>5,5=>7,7=>-1}){Console.Write(i);}// Output: 12457
Atau bahkan sesuatu yang sangat konyol seperti pencarian indeks diri:
for(int i =1; i >0; i =new[]{0,2,4,0,5,7,0,-1}[i]){Console.Write(i);}// Output: 12457
Jawaban:
Anda bisa menggunakan array untuk memberikan angka yang Anda inginkan seperti ini
Atau lakukan sebaris yang tidak bersih ketika daftar nilai tumbuh menurut saya
sumber
int
deklarasi, karena kompilator akan menentukan itu dari konten.sumber
Pada dasarnya jawaban di sini benar, hanya karena Anda secara eksplisit meminta
for
bukanforeach
loop:https://dotnetfiddle.net/c5yjPe
sumber
Jika Anda ingin khususnya untuk loop kemudian lanjutkan dengan ini:
sumber
Jelas jawaban yang tepat untuk kasus umum adalah menggunakan
foreach
atau pencarian yang diindeks seperti yang ditunjukkan dalam jawaban lain, tetapi hanya demi kelengkapan:Anda dapat menggunakan pernyataan apa pun dalam a
for
ekspresi, termasuk kondisional. Dengan pemikiran itu, mudah untuk membangun kenaikan bersyarat atau bahkan kondisional lengkap (mesin negara?) Untuk set yang diperlukan:Atau bahkan sesuatu yang sangat konyol seperti pencarian indeks diri:
sumber