Pengesahan input (input validation) ialah gelung yang terus bertanya sehingga nilai memenuhi satu peraturan. Peraturan itu boleh berupa julat, panjang atau semakan kehadiran, dan syarat gelung menerangkan kes yang tidak sah.
Pelajaran ini tergolong dalam pseudokod untuk sukatan berkenaan. Ia berasaskan menjejak tugasan dan perbandingan, dan berkait dengan idea lebih luas dalam pengesahan, verifikasi dan pengujian.
Bagaimanakah saya menukar peraturan kepada gelung?
Nyatakan peraturan dalam perkataan, kemudian tulis syarat tidak sah, kerana gelung berulang selagi data salah.
| Semakan | Peraturan | Syarat tidak sah |
|---|---|---|
| Julat | Umur dari 12 hingga 18 | Age < 12 OR Age > 18 |
| Panjang | Kod mempunyai tepat 6 aksara | LENGTH(Code) <> 6 |
| Kehadiran | Nama tidak kosong | Name = "" |
Coraknya: baca sekali, kemudian ulang selagi tidak sah, bertanya semula di dalam gelung.
INPUT Age
WHILE Age < 12 OR Age > 18 DO
OUTPUT "Enter an age from 12 to 18"
INPUT Age
ENDWHILE
Contoh berlangkah
Jejak gelung di atas apabila pengguna menaip 25, kemudian 9, kemudian 14.
| Langkah | Age | Syarat (Age < 12 OR Age > 18) | Tindakan |
|---|---|---|---|
| INPUT pertama | 25 | 25 > 18, maka TRUE | gesaan, INPUT semula |
| INPUT kedua | 9 | 9 < 12, maka TRUE | gesaan, INPUT semula |
| INPUT ketiga | 14 | FALSE, FALSE, maka FALSE | gelung tamat |
Gesaan dikeluarkan dua kali dan Age berakhir 14. Semak: 14 tidak kurang daripada 12 dan tidak lebih daripada 18, jadi ia dibenarkan.
Menerangkan semakan dengan perkataan juga diterima dalam sesetengah soalan: “Ulang input selagi umur kurang daripada 12 atau lebih daripada 18.” Namakan peraturan dengan tepat dan elakkan merujuk kaedah terbina dalam.
Kesilapan yang perlu diawasi
Silap yang lazim ialah menggunakan AND di tempat yang memerlukan OR.
Syarat yang salah:
WHILE Age < 12 AND Age > 18 DOTiada nombor yang kurang daripada 12 dan lebih daripada 18 serentak, jadi syarat ini sentiasa FALSE. Gelung tidak pernah berjalan, dan 25 diterima.
Pembetulannya ialah OR untuk kes tidak sah. Silap kedua ialah menggunakan syarat sah dalam WHILE: WHILE Age >= 12 AND Age <= 18 mengulang gesaan untuk nilai baik dan berhenti untuk nilai buruk. Jika anda lebih suka menulis peraturan yang sah, gunakan REPEAT ... UNTIL Age >= 12 AND Age <= 18.
Semak sendiri
1. Tulis syarat tidak sah bagi markah yang mesti dari 0 hingga 100.
Tunjukkan jawapan
Mark < 0 OR Mark > 100
2. Sebuah kod mesti mempunyai tepat 5 aksara. Pengguna menaip “AB12”. Adakah gelung berulang?
Tunjukkan jawapan
LENGTH(“AB12”) ialah 4, dan 4 <> 5 ialah TRUE. Ya, gelung berulang dan bertanya semula.
3. Adakah semakan julat pada umur menghalang pengguna menaip 15 sedangkan umur sebenar mereka 17?
Tunjukkan jawapan
Tidak. 15 berada dalam julat, jadi ia lulus. Pengesahan menyemak bahawa nilai itu munasabah, bukan bahawa ia benar.
Ke mana selepas ini
Gelung pengesahan ialah antara tempat paling lazim berlakunya kesilapan penamatan, jadi teruskan ke membaiki syarat penamat gelung. Latih melangkah kod dalam alat latihan jejak pseudokod terhad.
Seorang guru dalam tuisyen Computer Science dalam talian satu dengan satu kami boleh memberi senario pengesahan baharu dan menyemak setiap syarat yang anda tulis.