Rumah Kewangan Peribadi Pemrograman java dan Pemasangan Gelombang - dummies

Pemrograman java dan Pemasangan Gelombang - dummies

Isi kandungan:

Video: Belajar Java #04 - Memahami Struktur Program 2024

Video: Belajar Java #04 - Memahami Struktur Program 2024
Anonim

Untuk membuat gelung program Java anda lebih mudah untuk ditulis dan mudah difahami, anda perlu tahu bagaimana pemecahan Java dan terus pernyataan mempengaruhi lelaran gelung.

Kenyataan pemecah Java

Ambil gander pada program di bawah. Program ini secara rawak menghasilkan nombor dari 1 hingga 10, dan berulang kali meminta pengguna untuk meneka nombor itu.

Listing 1

import java statik. lang. Sistem. keluar; import java. util. Pengimbas; import java. util. Rawak; kelas awam GuessAgain {public static void main (String args []) {Pengimbas papan kekunci = Pengimbas baru (System. in); int numGuesses = 0; int randomNumber = new Random (). nextInt (10) + 1; keluar. println ("************"); keluar. println ("Selamat datang ke Permainan Meneka"); keluar. println ("************"); keluar. println (); keluar. cetak ("Masukkan int dari 1 hingga 10:"); int inputNumber = keyboard. nextInt (); numGuesses ++; sementara (inputNumber! = RandomNumber) { keluar. println (); keluar. println ("Cuba lagi …"); keluar. cetak ("Masukkan int dari 1 hingga 10:"); inputNumber = keyboard. nextInt (); numGuesses ++; } keluar. cetak ("Anda menang selepas"); keluar. println (numGuesses + "guesses."); papan kekunci. dekat ();}}

Angka di bawah menunjukkan larian kod. Pengguna membuat lima tekaan. Setiap kali, komputer memeriksa untuk melihat sama ada ramalan itu betul. Teka-teki salah menghasilkan permintaan untuk mencuba lagi. Untuk meneka dengan tepat, pengguna mendapat kemenangan Anda menang, bersama-sama dengan jumlah bilangan tekaan yang dibuatnya. Komputer mengulangi beberapa pernyataan berulang kali, memeriksa setiap masa melalui untuk melihat apakah tebakan pengguna adalah sama dengan nombor yang dijana secara rawak. Setiap kali pengguna membuat tekaan, komputer menambah 1 untuk meneka pendapatnya. Apabila pengguna membuat tekaan yang betul, komputer memaparkan tally itu.

Apa yang janggal tentang program ini? Nah, beberapa kenyataan muncul lebih daripada satu kali dalam program ini. Biasanya, satu kenyataan yang disalin dari satu bahagian ke satu program kepada yang lain tidak menimbulkan kebimbangan. Namun, strategi keseluruhan kelihatan mencurigakan. Program ini mendapat nombor dari pengguna sebelum gelung dan (lagi) di dalam gelung.

keluar. cetak ("Masukkan int dari 1 hingga 10:"); int inputNumber = keyboard. nextInt (); numGuesses ++; sementara (inputNumber! = RandomNumber) {out. println (); keluar. println ("Cuba lagi …"); keluar. cetak ("Masukkan int dari 1 hingga 10:"); inputNumber = keyboard. nextInt (); numGuesses ++; }

Kod ini menggunakan helah standard untuk membuat gelung bekerja. Ia dipanggil menyebarkan gelung. Coraknya ialah

Dapatkan input manakala input yang anda miliki bukan input terakhir { Dapatkan input lebih banyak }

, komputer memeriksa keadaan yang berkaitan dengan input pengguna. Jadi komputer tidak memasukkan gelung sehingga pengguna memberikan beberapa input. Kemudian apabila komputer berada di dalam gelung, komputer meminta input yang lebih banyak untuk memberi makan lelaran seterusnya gelung. Caranya kelihatan pelik, tetapi ia berfungsi.

Pemaju menggunakan teknik ini, menyusun satu gelung, sepanjang masa, jadi ia tidak boleh menjadi yang buruk. Tetapi ada cara lain.

Listing 2

import java statik. lang. Sistem. keluar; import java. util. Pengimbas; import java. util. Rawak; kelas awam GuessAgain {public static void main (String args []) {Pengimbas papan kekunci = Pengimbas baru (System. in); int inputNumber, numGuesses = 0; int randomNumber = new Random (). nextInt (10) + 1; keluar. println ("************"); keluar. println ("Selamat datang ke Permainan Meneka"); keluar. println ("************"); keluar. println (); sementara (benar) { keluar. cetak ("Masukkan int dari 1 hingga 10:"); inputNumber = keyboard. nextInt (); numGuesses ++; jika (inputNumber == randomNumber) { break; } keluar. println (); keluar. println ("Cuba lagi …"); } keluar. cetak ("Anda menang selepas"); keluar. println (numGuesses + "guesses."); papan kekunci. close ();}}

Dari sudut pandang pengguna, kod dalam Penyenaraian 2 sama persis dengan kod dalam Penyenaraian 1. (Untuk melihat output dari salah satu program, lihat rajah di atas.) perbezaan ialah Listing 2 hanya mempunyai satu panggilan ke papan kekunci. nextInt. Panggilan itu berada di dalam gelung, jadi komputer mesti memasuki gelung tanpa menguji sebarang input.

Jika anda melihat keadaan gelung, anda dapat melihat bagaimana ini berfungsi. Keadaan gelung sentiasa berlaku. Tidak kira apa yang berlaku, keadaan gelung selalu berlalu. Jadi keadaan gelung itu adalah penipuan besar. Anda tidak akan melompat keluar dari gelung dengan gagal ujian dalam keadaan gelung. Sebaliknya, anda melompat apabila anda memukul kenyataan rehat yang berada di dalam gelung (dan anda memukul kenyataan itu apabila anda melewati sekatan jalan raya (inputNumber == randomNumber). Seluruh perkara berfungsi dengan sangat baik.

Apabila komputer mengeksekusi pernyataan rehat yang berada dalam gelung, komputer melompat keluar dari gelung (kepada pernyataan pertama yang datang selepas gelung).

Dengan pernyataan penembusan, komputer melompat dari hanya satu gelung. Jika gelung itu berlaku di dalam gelung lain (gelung luar) komputer tidak melompat di luar gelung luar.

kelas awam BreakOutOfLoop {public static void main (String [] args) { untuk (int i = 0; i <3; i ++) { for (int j = 0; j <100; j ++) { Sistem. keluar. cetak (j + ""); jika (j> 9) {break;} } Sistem. keluar. println ("saya keluar!"); } }}

Untuk menggambarkan, angka berikut mengandungi output kod sebelumnya:

Apabila komputer sampai pada kenyataan perebutan, kawalan akan melompat ke pernyataan saya.Bahawa kenyataan yang saya nyatakan adalah di luar dari gelang j tetapi ia di dalam untuk i loop.

Dari sudut pandang pengaturcara, kod dalam Penyenaraian 2 adalah lebih semula jadi dari kod dalam Penyenaraian 1. Lagi pula, bagaimanakah permainan diteruskan? Pengguna meneka, maka komputer memeriksa tatar itu, dan kemudian (jika tekaan itu tidak betul) komputer mengatakan "Coba lagi. "Itulah urutan peristiwa seperti yang dihuraikan dalam Penyenaraian 2. Tetapi dalam Penyenaraian 1, kod di dalam gelung seolah-olah menggambarkan kejadian dalam urutan terbalik: Gelung itu berkata" Cuba sekali lagi, "dan kemudian pengguna memasukkan nombor.

Penyenaraian 2 menawarkan alternatif yang bagus untuk teknik penyerapan gelung dalam Penyenaraian 1. Jadi, mengapa programmer mengganggu untuk memacu gelung mereka? Adakah kenyataan yang rosak mempunyai kelemahan tersembunyi? Jawapannya bergantung pada pandangan anda. Sesetengah pengaturcara berfikir bahawa pernyataan yang melanggar di gelung akan mengelirukan. Semua melompat dari penyataan kepada penyataan membuat mereka pening dan mengingatkan mereka sesuatu dari tahun 1960 yang dipanggil kod spaghetti . (Spaghetti menggunakan pernyataan goto untuk melompat dari satu pernyataan ke satu lagi. Dalam Pascal oleh Contoh , pengarang B. Burd berkata "Pemrograman dengan goto adalah seperti perjalanan di sekitar Paris dengan berenang melalui sistem pembetungannya. potongan pendek, tetapi tidak ada yang patut diambil. ") Salah satu cara atau yang lain, pernyataan dalam gelung adalah pengecualian, bukan peraturan. Gunakannya jika anda mahu, tetapi jangan mengharapkan untuk mencari banyak daripada mereka dalam kod Java orang lain.

Pernyataan lanjut Java

Penyenaraian 3 menawarkan lebih banyak sos rahsia untuk gelung program anda. Bayangkan permainan yang secara rawak menghasilkan tiga nombor dari 1 hingga 20. Pengguna mengambil lima bertukar meneka nombor. Apabila pengguna memasukkan tekaan yang betul, program ini mengucapkan tahniah kepada pengguna. ("Teka-teki yang baik," kata program itu.) Apabila pengguna memasuki tatar yang salah, program ini tidak memberikan maklum balas.

Penyenaraian 3 mengandungi beberapa kod untuk menjadikannya semua berlaku.

Listing 3

import java statik. lang. Sistem. keluar; import java. util. Pengimbas; import java. util. Rawak; kelas awam GuessAgainAndAgain {public static void main (String args []) {Pengimbas papan kekunci = Pengimbas baru (System. in); int inputNumber; int randNum1 = Rawak baru (). nextInt (20) + 1; int randNum2 = Rawak baru (). nextInt (20) + 1; int randNum3 = Rawak baru (). nextInt (20) + 1; keluar. println ("************"); keluar. println ("Selamat datang ke Permainan Meneka"); keluar. println ("************"); keluar. println (); untuk (int i = 0; i <5; i ++) {keluar. cetak ("Masukkan int:"); inputNumber = keyboard. nextInt (); jika (inputNumber! = RandNum1 && inputNumber! = RandNum2 && inputNumber! = RandNum3) { continue; } keluar. println ("Teka-teki yang baik!"); keluar. println ();} keluar. cetak ("Nombor adalah"); keluar. cetak (randNum1 + ""); keluar. cetak (randNum2 + ""); keluar. cetak (randNum3 + ""); papan kekunci. tutup ();}}

Angka ini menunjukkan satu run program sedemikian.

Pernyataan lanjut Java memberitahu komputer untuk melewati kenyataan yang tersisa di dalam gelung.Iaitu, bukannya melaksanakan pernyataan yang tinggal di dalam gelung, komputer bergerak ke permulaan lelaran seterusnya gelung. Oleh itu, dalam Penyenaraian 3, apabila inputNumber bukan salah satu daripada nombor yang dijana secara rawak program, komputer melompat melangkaui kod "Teka-teki yang baik", menambah kaunter gelung (pemboleh ubah i), dan meminta pengguna untuk memasukkan nilai input yang lain. (Sudah tentu, jika kaunter gelung menyentuh hadnya, komputer tidak melaksanakan lelaran yang lain. Sebaliknya, komputer melompat keluar dari gelung, dan melaksanakan apa-apa kenyataan yang datang selepas gelung.)

Anda boleh menulis semula Listing 3 dengan mudah supaya kod tersebut tidak mempunyai kenyataan terus. Anda perlu meletakkan kod "tekaan yang baik" di dalam pernyataan jika, tetapi itu akan baik-baik saja. Kenyataan yang berterusan tidak banyak dilakukan untuk memperbaiki rupa senarai Listing 3. Tetapi apabila anda ingin mengelakkan kod bersarang di dalam jika penyataan, kenyataan berterusan berguna.

Mungkin, dalam permohonan anda, baki gelung itu adalah urutan pernyataan yang rumit. Anda tidak mahu membuat urutan ini kelihatan lebih rumit dengan melampirkannya dalam kenyataan jika. Atau mungkin, dalam aplikasi anda, anda hanya jarang melangkau baki gelung, dan anda ingin menekankan kekili ini dengan tidak melampirkan baki gelung dalam pernyataan jika. Dalam mana-mana kes, kenyataan terus mungkin tepat pilihan.

Pemrograman java dan Pemasangan Gelombang - dummies

Pilihan Editor

Cara Buat Outlet untuk Pengawal Peta di Apl iOS anda - dummies

Cara Buat Outlet untuk Pengawal Peta di Apl iOS anda - dummies

Jika anda mahu menggunakan MapController untuk apl iOS anda, anda memerlukan sebuah saluran keluar. Dengan Pemilih peta anda dijaga, tiba waktunya untuk mencipta saluran supaya MapController mempunyai akses ke paparan Peta untuk memusatkan peta dan mempunyai paparan anotasi. Ikuti langkah berikut:

Bagaimana Membuat Seni Bina Aplikasi iOS - manisan

Bagaimana Membuat Seni Bina Aplikasi iOS - manisan

Senibina aplikasi adalah di mana anda akan bermula dengan pembangunan aplikasi iOS anda. Pada tahap asas, kebanyakan apl terdiri daripada komponen asas yang sama. Kebanyakan aplikasi terdiri daripada yang berikut: Model: Objek model merangkumi logik dan kandungan (data) aplikasi. Views: Kandungan data tidak berguna jika pengguna anda ...

Protein Diet Paleo dan Mengapa Haiwan Matter - manik

Protein Diet Paleo dan Mengapa Haiwan Matter - manik

Manusia, manusia gua dan manusia moden, adalah omnivora . Gaya hidup Paleo membina warisan makan daging. Ahli antropologi bersetuju bahawa nenek moyang kita yang terdahulu adalah pemakan daging, dan saintis menganggarkan bahawa gen kita adalah 99. 9 peratus sama dengan mereka pada masa itu. Daging menyediakan kita dengan protein, asid lemak penting, dan vitamin - sama seperti ...

Pilihan Editor

Bersukacita dengan Perspektif Hak - monyet

Bersukacita dengan Perspektif Hak - monyet

Tidak seperti binatang lain, mengenai pilihan! Anda boleh memilih untuk berbahagia. Anda boleh memilih untuk melihat kehidupan sebagai kaca separuh penuh (optimistik) atau kaca setengah kosong (pesimis). Semuanya datang kepada sama ada anda menentukan masalah sebagai cabaran atau krisis. Mempunyai perspektif yang betul adalah ...

Kebahagiaan: Tahu Kapan Rencana dan Kapan Bukan Untuk - patung

Kebahagiaan: Tahu Kapan Rencana dan Kapan Bukan Untuk - patung

Akhir-akhir ini, manusia memerlukan rancangan untuk semuanya. Adakah rancangan ini menjadikan anda lebih bahagia? Lebih kurang dan lebih sedikit orang boleh melalui hari tanpa BlackBerry. Ibu bapa merancang untuk pendidikan kolej anak-anak mereka apabila anak-anak berada di tadika. Ada perancang persaraan, perancang perjalanan, perancang perkahwinan, dan bahkan ...

Memutuskan apa jenis orangtua yang anda inginkan untuk mencapai kebahagiaan

Memutuskan apa jenis orangtua yang anda inginkan untuk mencapai kebahagiaan

Bagaimana membesarkan anak-anak anda tidak hanya menjejaskan betapa gembiranya mereka; ia memberi kesan kepada bagaimana mereka melakukan persembahan di sekolah, sama ada mereka mengambil merokok, bagaimana mungkin mereka akan mengalami kemurungan, dan sama ada mereka terlibat dalam tingkah laku seksual yang berisiko. Menurut ahli psikologi yang mengkaji hal semacam ini, terdapat empat gaya utama ...

Pilihan Editor

Rakaman Excel Macros dengan Rujukan Mutlak - dummies

Rakaman Excel Macros dengan Rujukan Mutlak - dummies

Mod rakaman lalai excel adalah rujukan mutlak. Apabila rujukan sel dalam formula adalah rujukan mutlak, ia tidak menyesuaikan secara automatik apabila formula disisipkan ke lokasi baru. Cara terbaik untuk memahami bagaimana konsep ini digunakan untuk makro adalah mencuba. Catat makro yang mengira baris ...

Merujuk kepada Nilai atau Rumusan dalam Sel Lain dalam Excel 2007 Formula - dummies

Merujuk kepada Nilai atau Rumusan dalam Sel Lain dalam Excel 2007 Formula - dummies

Menghubungkan formula adalah formula dalam Excel 2007 yang merujuk lokasi dalam lembaran kerja yang sama, buku kerja sama, atau bahkan buku kerja yang berbeza. Apabila anda mencipta formula pautan, ia membawa formula rumit atau asal ke lokasi baru supaya hasil dalam formula pengaudan tetap terikat secara dinamik kepada asal. Jika ...

Rakaman Excel Macros dengan Rujukan Relatif - dummies

Rakaman Excel Macros dengan Rujukan Relatif - dummies

Rujukan relatif dalam makro Excel bermakna relatif kepada sel yang sedang aktif . Oleh itu, berhati-hati dengan pilihan sel aktif anda - kedua-duanya apabila anda merakam rujukan makro relatif dan apabila anda menjalankannya. Pertama, buka Sample File. xlsx boleh didapati dalam talian. Kemudian, gunakan langkah-langkah berikut untuk merakam makro rujukan relatif: Pada ...