Latihan - Menyelesaikan aktivitas tantangan untuk membedakan antara melakukan dan saat pernyataan iterasi
Tantangan kode akan memperkuat apa yang telah Anda pelajari dan membantu Anda mendapatkan kepercayaan diri sebelum melanjutkan.
Memeriksa perbedaan antara perulangan pernyataan dan tugas
Seperti yang telah Anda lihat, C# mendukung empat jenis pernyataan iterasi: for, , foreachdo-while, dan while. Dokumentasi referensi bahasa Microsoft menjelaskan pernyataan ini sebagai berikut:
- Pernyataan
for: menjalankan isinya sementara ekspresi Boolean tertentu ('kondisi') mengevaluasi ke true. - Pernyataan
foreach: menghitung elemen koleksi dan mengeksekusi isinya untuk setiap elemen koleksi. - Pernyataan
do-while: secara kondisional mengeksekusi tubuhnya satu atau beberapa kali. - Pernyataan
while: secara kondisional menjalankan tubuhnya nol atau lebih kali.
Iterasi for dan foreach tampaknya jelas berbeda satu sama lain dan dari iterasi do-while dan while . Definisi untuk do-while pernyataan dan while , bagaimanapun, tampaknya sangat mirip. Mengetahui kapan harus memilih antara dan do-while tampaknya while lebih arbitrer, dan bahkan bisa sedikit membingungkan. Beberapa proyek tantangan dapat membantu memperjelas perbedaan.
Dalam tantangan ini, Anda akan disajikan dengan kondisi untuk tiga proyek pengkodan terpisah. Setiap proyek akan mengharuskan Anda menerapkan blok kode iterasi menggunakan do-while pernyataan atau while . Anda harus mengevaluasi kondisi yang ditentukan untuk memilih antara do-while pernyataan dan while . Anda dapat beralih setelah memulai jika pilihan pertama Anda tidak berfungsi seperti yang Anda harapkan.
Catatan
Kondisi untuk proyek pengkodian Anda dapat digunakan untuk membantu Anda memilih antara do-while pernyataan dan while . Apa yang Anda ketahui, atau tidak tahu, tentang ekspresi Boolean yang akan dievaluasi terkadang dapat membantu Anda memilih antara do-while pernyataan dan while . Dalam latihan tantangan ini, kondisi proyek mencakup informasi yang akan digunakan untuk membangun ekspresi Boolean.
Mengelola input pengguna selama tantangan ini
Saat menggunakan Console.ReadLine() pernyataan untuk mendapatkan input pengguna, adalah praktik umum untuk menggunakan string jenis nullable (ditunjuk string?) untuk variabel input lalu mengevaluasi nilai yang dimasukkan oleh pengguna. Sampel kode berikut menggunakan string jenis nullable untuk menangkap input pengguna. Iterasi berlanjut sementara nilai yang disediakan pengguna null:
string? readResult;
Console.WriteLine("Enter a string:");
do
{
readResult = Console.ReadLine();
} while (readResult == null);
Ekspresi Boolean yang dievaluasi oleh while pernyataan dapat digunakan untuk memastikan input pengguna memenuhi persyaratan yang ditentukan. Misalnya, jika perintah meminta pengguna untuk memasukkan string yang menyertakan setidaknya tiga karakter, kode berikut dapat digunakan:
string? readResult;
bool validEntry = false;
Console.WriteLine("Enter a string containing at least three characters:");
do
{
readResult = Console.ReadLine();
if (readResult != null)
{
if (readResult.Length >= 3)
{
validEntry = true;
}
else
{
Console.WriteLine("Your input is invalid, please try again.");
}
}
} while (validEntry == false);
Jika Anda ingin menggunakan Console.ReadLine() input untuk nilai numerik, Anda perlu mengonversi nilai string menjadi jenis numerik.
Metode int.TryParse() ini dapat digunakan untuk mengonversi nilai string menjadi bilangan bulat. Metode ini menggunakan dua parameter, string yang akan dievaluasi dan nama variabel bilangan bulat yang akan diberi nilai. Metode mengembalikan nilai Boolean. Sampel kode berikut menunjukkan menggunakan int.TryParse() metode :
// capture user input in a string variable named readResult
int numericValue = 0;
bool validNumber = false;
validNumber = int.TryParse(readResult, out numericValue);
Jika nilai string yang ditetapkan untuk readResult mewakili bilangan bulat yang valid, nilai akan ditetapkan ke variabel bilangan bulat bernama numericValue, dan true akan ditetapkan ke variabel Boolean bernama validNumber. Jika nilai yang ditetapkan untuk readResult tidak mewakili bilangan validNumberbulat yang valid, false akan diberi nilai . Misalnya, jika readResult sama dengan "7", nilai 7 akan ditetapkan ke numericValue.
Proyek kode 1 - tulis kode yang memvalidasi input bilangan bulat
Berikut adalah kondisi yang harus diterapkan oleh proyek pengkodan pertama Anda:
Solusi Anda harus mencakup perulangan
do-whileatauwhile.Sebelum blok perulangan: solusi Anda harus menggunakan
Console.WriteLine()pernyataan untuk meminta nilai bilangan bulat antara 5 dan 10 kepada pengguna.Di dalam blok iterasi:
- Solusi Anda harus menggunakan
Console.ReadLine()pernyataan untuk mendapatkan input dari pengguna. - Solusi Anda harus memastikan bahwa input adalah representasi bilangan bulat yang valid.
- Jika nilai bilangan bulat tidak antara 5 dan 10, kode Anda harus menggunakan
Console.WriteLine()pernyataan untuk meminta nilai bilangan bulat antara 5 dan 10 kepada pengguna. - Solusi Anda harus memastikan bahwa nilai bilangan bulat adalah antara 5 dan 10 sebelum keluar dari iterasi.
- Solusi Anda harus menggunakan
Di bawah (setelah) blok kode iterasi: solusi Anda harus menggunakan
Console.WriteLine()pernyataan untuk memberi tahu pengguna bahwa nilai input mereka telah diterima.
Pastikan Anda memiliki file Program.cs kosong yang terbuka di Visual Studio Code.
Jika perlu, buka Visual Studio Code, lalu selesaikan langkah-langkah berikut untuk menyiapkan file Program.cs di Editor:
Pada menu File, pilih Buka Folder.
Gunakan dialog Buka Folder untuk menavigasi, lalu buka, folder CsharpProjects .
Di panel Visual Studio Code EXPLORER, pilih Program.cs.
Pada menu Pilihan Visual Studio Code, pilih Pilih Semua, lalu tekan tombol Hapus.
Tulis kode yang mengimplementasikan setiap kondisi untuk proyek kode 1.
Jalankan aplikasi Anda dan verifikasi bahwa kode Anda memvalidasi input pengguna berdasarkan persyaratan yang ditentukan.
Misalnya, ketika Anda menjalankan aplikasi, aplikasi harus menolak nilai input seperti "dua" dan "2", tetapi harus menerima nilai input "7".
Contoh yang dijelaskan di atas, output konsol akan terlihat mirip dengan yang berikut ini:
Enter an integer value between 5 and 10 two Sorry, you entered an invalid number, please try again 2 You entered 2. Please enter a number between 5 and 10. 7 Your input value (7) has been accepted.
Proyek kode 2 - kode tulis yang memvalidasi input string
Berikut adalah kondisi yang harus diterapkan proyek pengkodean kedua Anda:
Solusi Anda harus mencakup perulangan
do-whileatauwhile.Sebelum blok iterasi: solusi Anda harus menggunakan
Console.WriteLine()pernyataan untuk meminta salah satu dari tiga nama peran kepada pengguna: Administrator, Manajer, atau Pengguna.Di dalam blok iterasi:
- Solusi Anda harus menggunakan
Console.ReadLine()pernyataan untuk mendapatkan input dari pengguna. - Solusi Anda harus memastikan bahwa nilai yang dimasukkan cocok dengan salah satu dari tiga opsi peran.
- Solusi Anda harus menggunakan
Trim()metode pada nilai input untuk mengabaikan karakter spasi awal dan akhir. - Solusi Anda harus menggunakan
ToLower()metode pada nilai input untuk mengabaikan kasus. - Jika nilai yang dimasukkan tidak cocok untuk salah satu opsi peran, kode Anda harus menggunakan
Console.WriteLine()pernyataan untuk meminta entri yang valid kepada pengguna.
- Solusi Anda harus menggunakan
Di bawah (setelah) blok kode iterasi: Solusi Anda harus menggunakan
Console.WriteLine()pernyataan untuk memberi tahu pengguna bahwa nilai input mereka telah diterima.
Komentari semua kode di panel Editor Visual Studio Code
- Pilih semua baris kode di editor kode
- Pada menu Edit , pilih Alihkan Komentar Blokir.
Tulis kode yang mengimplementasikan setiap kondisi untuk proyek kode 2.
Jalankan aplikasi Anda dan verifikasi bahwa kode Anda memvalidasi input pengguna berdasarkan persyaratan yang ditentukan.
Misalnya, saat Anda menjalankan aplikasi, aplikasi harus menolak nilai input seperti "Admin", tetapi harus menerima nilai input " administrator ".
Output konsol untuk contoh ini akan terlihat mirip dengan yang berikut:
Enter your role name (Administrator, Manager, or User) Admin The role name that you entered, "Admin" is not valid. Enter your role name (Administrator, Manager, or User) Administrator Your input value (Administrator) has been accepted.
Proyek kode 3 - Menulis kode yang memproses konten array string
Berikut adalah kondisi yang harus diterapkan oleh proyek pengkodian ketiga Anda:
solusi Anda harus menggunakan array string berikut untuk mewakili input ke logika pengkodian Anda:
string[] myStrings = new string[2] { "I like pizza. I like roast chicken. I like salad", "I like all three of the menu choices" };Solusi Anda harus mendeklarasikan variabel bilangan bulat bernama
periodLocationyang dapat digunakan untuk menahan lokasi karakter periode dalam string.Solusi Anda harus menyertakan outer
foreachatauforloop yang dapat digunakan untuk memproses setiap elemen string dalam array. Variabel string yang akan Anda proses di dalam perulangan harus diberi namamyString.Di perulangan luar, solusi Anda harus menggunakan
IndexOf()metodeStringkelas untuk mendapatkan lokasi karakter periode pertama dalammyStringvariabel. Panggilan metode harus mirip dengan:myString.IndexOf("."). Jika tidak ada karakter titik dalam string, nilai -1 akan dikembalikan.Solusi Anda harus menyertakan bagian dalam
do-whileatauwhileperulangan yang dapat digunakan untuk memprosesmyStringvariabel.Dalam perulangan dalam, solusi Anda harus mengekstrak dan menampilkan (menulis ke konsol) setiap kalimat yang terkandung dalam setiap string yang diproses.
Dalam perulangan dalam, solusi Anda tidak boleh menampilkan karakter titik.
Dalam perulangan dalam, solusi Anda harus menggunakan
Remove()metode , ,Substring()danTrimStart()untuk memproses informasi string.
Komentari semua kode di panel Editor Visual Studio Code
- Pilih semua baris kode di editor kode
- Pada menu Edit , pilih Alihkan Komentar Blokir.
Tulis kode yang mengimplementasikan setiap kondisi yang tercantum untuk proyek kode 3.
Jalankan aplikasi Anda dan verifikasi bahwa output Anda memenuhi persyaratan.
Jika logika kode Anda berfungsi dengan benar, output Anda akan terlihat mirip dengan yang berikut ini:
I like pizza I like roast chicken I like salad I like all three of the menu choices
Apakah Anda terjebak dan perlu mengintip solusi atau Anda berhasil menyelesaikannya, lanjutkan untuk melihat proyek solusi untuk tantangan ini.