Saya memiliki loop ini:
for (int i = 1; i < 10; i++)
Tetapi sebaliknya saya ingin memiliki saya hanya nomor 1,2,4,5 dan 7 dan saya akan hardcode ini.
Apakah ada cara saya bisa melakukan ini dengan sesuatu seperti array?
Saya memiliki loop ini:
for (int i = 1; i < 10; i++)
Tetapi sebaliknya saya ingin memiliki saya hanya nomor 1,2,4,5 dan 7 dan saya akan hardcode ini.
Apakah ada cara saya bisa melakukan ini dengan sesuatu seperti array?
Jawaban:
Anda bisa menggunakan array untuk memberikan angka yang Anda inginkan seperti ini
int[] loop = new int[] {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 in new int[] {1,2,4,5,7})
Console.WriteLine(i);
intdeklarasi, karena kompilator akan menentukan itu dari konten.
foreach (int i in new int[] { 1, 2, 4, 5, 7 })
{
}
Pada dasarnya jawaban di sini benar, hanya karena Anda secara eksplisit meminta forbukan foreachloop:
int[] loop = new int[] { 1, 2, 4, 5, 7 };
for (int i = 0; i< loop.Length; i++)
{
Console.WriteLine(loop[i]);
}
Jika Anda ingin khususnya untuk loop kemudian lanjutkan dengan ini:
var list = new List<int>() { 1, 2, 4, 5, 7 };
for (int i = 0; i < list.Count; i++) // Loop through List with for
{
Console.WriteLine(list[i]);
}
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: 12457
for (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