(Jawa) Pembolehubah. Format output


Komputer tidak akan diperlukan jika ia tidak mempunyai keupayaan untuk menyimpan pelbagai maklumat dalam ingatannya dan boleh memproses maklumat daripada jenis yang sama menggunakan algoritma yang sama. 
Untuk mencipta program yang lebih menarik, seseorang mesti belajar cara menyimpan maklumat dalam ingatan komputer. Pada masa yang sama, kita perlu belajar bagaimana untuk mengakses sel memori komputer. 
Dalam pengaturcaraan, seperti dalam kehidupan, untuk merujuk kepada mana-mana bahagian memori komputer, ia berlaku mengikut nama. Menggunakan nama ini, anda boleh membaca maklumat dan menulisnya di sana.

Pembolehubah ialah lokasi dalam memori komputer yang mempunyai nama dan menyimpan beberapa nilai yang sepadan dengan jenis.

Perkataan "pembolehubah" memberitahu kita bahawa nilainya boleh berubah semasa pelaksanaan program.  Apabila nilai pembolehubah baharu disimpan, nilai lama dipadamkan


Untuk komputer, semua maklumat adalah data dalam ingatannya - set sifar dan satu (secara ringkasnya, sebarang maklumat dalam komputer hanyalah nombor, dan ia memprosesnya dengan cara yang sama). Walau bagaimanapun, kita tahu bahawa integer dan nombor pecahan berfungsi secara berbeza. Oleh itu, setiap bahasa pengaturcaraan mempunyai jenis data yang berbeza, yang diproses menggunakan kaedah yang berbeza.

Contohnya,
integer pembolehubah – taip int (daripada integer Inggeris – keseluruhan), menduduki 4 bait dalam ingatan;
sebenar pembolehubah yang boleh mempunyai bahagian pecahan (taip terapung – daripada titik terapung Inggeris – titik terapung) menduduki 4 bait dalam ingatan< br /> - aksara (taip char – daripada simbol – aksara Inggeris), menduduki 1 bait dalam ingatan

Mari cuba tambah beberapa pembolehubah pada program kami.
Sebelum menggunakan pembolehubah, anda perlu memberitahu komputer untuk memperuntukkan ruang dalam memori untuknya. Untuk melakukan ini, pembolehubah mesti diisytiharkan, iaitu, nyatakan jenis nilai yang akan disimpan dan beri nama.
Selain itu, jika perlu, anda boleh menetapkan nilai awal kepadanya. 

Mari kita ambil satu program sebagai contoh
kelas awam Utama {  
    public static void main(String[] args) {  
        int a=6, b;  //dua pembolehubah jenis integer telah diisytiharkan dalam pembolehubah a dan serta-merta menyimpan nilai 6. Pembolehubah b tidak ditetapkan kepada nilai awal; apa yang akan ada dalam ingatan dalam kes ini kita tidak tahu.
    }
}

Sekarang cuba sendiri.

Mari cuba menulis kalkulator untuk nombor perdana

Tugas kami ialah memaparkan beberapa ungkapan aritmetik pada skrin dan membuat komputer mengiranya.
Contohnya: 
5+7=12
Selain itu, bukannya 5 dan 7 boleh terdapat nombor yang berbeza, bergantung pada nilai pembolehubah a dan b dalam program.

Dalam pernyataan output, anda boleh memaparkan bukan sahaja teks, tetapi juga nilai pembolehubah, serta hasil ungkapan aritmetik. Selain itu, urutan keluaran mungkin berbeza. Sebagai contoh, untuk memaparkan ungkapan di atas, anda perlu menulisnya seperti ini: System.out.print(a+"+"+b+"="+(a+b)); Jika kita ingin memaparkan nilai pembolehubah, maka kita hanya perlu menentukan namanya tanpa petikan. Jika kita ingin memaparkan hasil ungkapan aritmetik, maka cukup sekadar menulis ungkapan aritmetik dengan betul.

*** Mendalam: Input Berformat ***
Dalam rentetan format, bilangan penentu output tidak terhad, perkara utama bagi setiap penentu selepas rentetan format ialah menyenaraikan semua nilai yang dipisahkan dengan koma, yang akan digantikan untuk templat. Contohnya: System.out.printf("%d+%d=%d",a,b,a+b); Rentetan format menentukan tiga penentu untuk mencetak nilai integer sebagai gantinya.  ; Perintah penggantian adalah langsung.  Itu. bukannya templat pertama %d nilai pembolehubah a akan dipaparkan; bukannya yang kedua -  nilai pembolehubah b; dan  bukannya yang ketiga - nilai ungkapan a+b Dan sekarang kita akan menulis atur cara yang memaparkan hasil operasi aritmetik asas dengan pembolehubah ini

Agar pengguna dapat menetapkan nilai pembolehubah itu sendiri, adalah perlu untuk dapat memasukkan nilai dari papan kekunci. Untuk ini, objek in digunakan, yang ditulis seperti ini: Pengimbas masuk = Pengimbas baharu(System.in); Tetapi untuk ia berfungsi, anda mesti mengimportnya dahulu menggunakan import java.util.Scanner

Untuk mendapatkan nilai integer, gunakan   in.nextInt();, yang hasilnya mesti diberikan kepada pembolehubah.
Contohnya,  int a = in.nextInt();
Terdapat kaedah lain untuk jenis data lain: 
  • next(): membaca baris input sehingga ruang pertama
  • nextLine(): membaca keseluruhan baris input
  • nextInt(): membaca int yang dimasukkan
  • nextDouble(): membaca input berganda
  • nextBoolean(): membaca nilai boolean
  • nextByte(): membaca bait nombor yang dimasukkan
  • nextFloat(): membaca float yang dimasukkan
  • nextShort(): membaca nombor yang dimasukkan pendek

*** bahan yang mendalam: untuk mereka yang berminat dengan bahasa Java ***
Penentu output tambahan membolehkan anda mengawal output nombor dalam format tertentu.

Lebar medan minimum
Contoh:
%04d  - nombor akan dipaparkan dalam 4 kedudukan, jika terdapat kurang daripada empat digit, maka yang pertama akan menjadi sifar
int a=34; System.out.printf("%04d",a); //pada skrin: 0 0 3 4   
garis bawah diletakkan di sini khusus untuk paparan visual output nombor.   

%4d – sama, tetapi bukannya sifar akan ada ruang
int a=34; System.out.printf(“%4d”,a); //pada skrin:      3 4 < /kod>

Output dengan ketepatan tertentu - digunakan untuk mengeluarkan nombor nyata. Secara lalai, nombor nyata dipaparkan dengan ketepatan sehingga 6 tempat perpuluhan. Tetapi ada kes yang perlu dikeluarkan dengan ketepatan yang berbeza. Dalam kes ini, anda perlu menentukan bilangan tempat kebiasaan untuk diperuntukkan untuk nombor itu sendiri dan berapa banyak selepas titik perpuluhan.
Contohnya,
%9.3f   - nombor nyata akan dipaparkan dalam 9 kedudukan, dengan tiga tempat perpuluhan.

double a=34.24356; System.out.printf("%9.3f",a); // pada skrin: _ _ _ 3 2 . 2 4 4

Mari cuba gunakan maklumat ini dalam amalan.

Bahan ini bertujuan untuk kajian yang lebih mendalam. Kami akan menganalisis cara mencetak pembolehubah menggunakan operator output Java (printf)
*** Bahan dalam ***


Bagaimana untuk memaparkan nilai pembolehubah pada skrin?
Untuk melakukan ini, di dalam rentetan format dalam pernyataan output, anda mesti menentukan templat, sebagai ganti nilai pembolehubah akan dipaparkan.
Templat mana yang hendak digunakan bergantung pada jenis pembolehubah. 
Corak ini dipanggil penentu output dan dibentangkan dalam jadual. Bilangan penentu yang mencukupi diberikan. Tidak perlu menghafal kesemuanya. 
Dalam kebanyakan kes, kami akan menggunakan penentu untuk mengeluarkan integer, nombor nyata, serta aksara dan rentetan. Tetapi anda boleh kembali ke pelajaran ini pada bila-bila masa dan melihat templat yang anda perlukan.
 
Tambahan:
Untuk memaparkan pembolehubah seperti short int  pengubah h digunakan (contohnya, \(\%hd\))
Untuk memaparkan nilai pembolehubah jenis long int, gunakan pengubah suai l (contohnya, \(\%ld \))< br /> Pengubah suai L boleh digunakan sebagai awalan sebelum penentu e, f, g. Ini bermakna nilai jenis double panjang dipaparkan pada skrin.  (cth. \(\%Lf\))

Mari lihat contoh dalam amalan

 

Kod Format
%c Simbol
%d Integer perpuluhan yang ditandatangani
%i Integer perpuluhan yang ditandatangani
%e Format saintifik (huruf kecil e)
%E Format saintifik (modal E)
%f Apungan sebenar 
%g Bergantung pada format yang lebih pendek, sama ada %e atau %f digunakan
%G Bergantung pada format yang lebih pendek, sama ada %E atau %f digunakan
%o Oktal yang ditandatangani
%s Rentetan aksara
%u Integer perpuluhan tidak ditandatangani
%x Nombor perenambelasan tidak ditandatangani (huruf kecil)
%X Nombor perenambelasan tidak ditandatangani (huruf besar)
%p Indeks
%n Tuding kepada pembolehubah integer. Penentu menyebabkan pembolehubah integer ini diberikan bilangan aksara yang dicetak sebelum ia
%% Tandatangan %                           
Kepada  output nombor nyata telah dijamin dengan titik sebagai pemisah, anda mesti menggunakan reka letak Amerika, yang disambungkan dengan:
  Tempat.setDefault(Locale .AS);