• Memahami apa suatu variable.
• pengenalan dengan C # built-in type.
• Mendapatkan pengenalan untuk operator C#.
• Mempelajari cara penggunaan Array.
Variable and Type
Type Boolean
using System;
class Booleans
{
public static void
{
bool content = true;
bool noContent = false;
Console.WriteLine("It is {0} that C# Station provides C# programming language content.", content);
Console.WriteLine("The statement above is not {0}.", noContent);
}
}
The statement above is not False.
Type Integral
Dalam C #, integral adalah jenis kategori. Bagi siapa pun bingung karena kata Integral terdengar seperti istilah matematika, dari perspektif C # programming, ini sebenarnya didefinisikan sebagai tipe Integral dalam bahasa pemrograman spesifikasi C # . Termasukbilangan bulat, baik signed atau unsigned, dan tipe char. The char Tipe adalah sebuah karakter Unicode, sebagaimana didefinisikan oleh Standar Unicode. Tabel 2-1 menunjukkan integral jenis, ukuran, dan jangkauan.
Table 2-1. Size and Range of C # Integral Types
Type | Size (in bits) | Range |
sbyte | 8 | -128 to 127 |
byte | 8 | 0 to 255 |
short | 16 | -32768 to 32767 |
ushort | 16 | 0 to 65535 |
int | 32 | -2147483648 to 2147483647 |
uint | 32 | 0 to 4294967295 |
long | 64 | -9223372036854775808 to 9223372036854775807 |
ulong | 64 | 0 to 18446744073709551615 |
char | 16 | 0 to 65535 |
Floating Point dan Type Decimal
AC # floating point baik jenis pelampung atau double. Mereka digunakan setiap waktu yang Anda butuhkan untuk mewakili bilangan real, seperti yang didefinisikan oleh IEEE 754. TypeDecimal harus digunakan bila keuangan atau uang mewakili nilai-nilai. Tabel 2-2 menunjukkan floating point dan type desimal, ukuran, ketepatan, dan jangkauan.
Table 2-2. The Floating Point and Decimal Types with Size, precision, and Range
Type
Size (in bits)
ketepatan
Jangkauan
float
32
7 digits
1.5 x 10-45 to 3.4 x 1038
double
64
15-16 digits
5.0 x 10-324 to 1.7 x 10308
decimal
128
28-29 decimal places
1.0 x 10-28 to 7.9 x 1028
Type
Size (in bits)
ketepatan
Jangkauan
float
32
7 digits
1.5 x 10-45 to 3.4 x 1038
double
64
15-16 digits
5.0 x 10-324 to 1.7 x 10308
decimal
128
28-29 decimal places
1.0 x 10-28 to 7.9 x 1028
Jenis floating point digunakan ketika Anda harus melakukan operasi yang memerlukan representasi fraksional. Namun, untuk perhitungan keuangan, tipe desimal adalah pilihan terbaik karena Anda dapat menghindari kesalahan pembulatan.
The string Type
Sebuah string adalah rangkaian karakter teks. Anda biasanya membuat sebuah string dengan string literal, tertutup dalam tanda kutip: "This is example a string." Anda telah melihat string yang digunakan dalam Pelajaran 1, di mana kita menggunakan metode Console.WriteLine untuk mengirim output ke konsol.
Beberapa karakter tidak dicetak, tetapi Anda masih perlu untuk menggunakannya dalam string.Oleh karena itu, C # memiliki sintaks khusus di mana karakter dapat melarikan diri untuk mewakili karakter non-printable. Sebagai contoh, biasanya untuk menggunakan baris dalam teks, yang diwakili oleh '\ n' char. The backslash, '\', mewakili melarikan diri. Ketika didahului oleh karakter melarikan diri, para 'n' tidak lagi ditafsirkan sebagai karakter abjad, tapi sekarang mewakili sebuah baris baru.
Anda mungkin sekarang bertanya-tanya bagaimana Anda bisa mewakili karakter garis miring terbalik dalam kode Anda. Kita harus melarikan diri itu juga dengan mengetik dua backslashes, seperti pada '\ \'. Tabel 2-3 menunjukkan daftar Common escape sequence.
Table 2-3. C# Character Escape Sequences
Escape Sequence
Meaning
\'
Single Quote
\"
Double Quote
\\
Backslash
\0
Null, not the same as the C# null value
\a
Bell
\b
Backspace
\f
form Feed
\n
Newline
\r
Carriage Return
\t
Horizontal Tab
\v
Vertical Tab
Escape Sequence
Meaning
\'
Single Quote
\"
Double Quote
\\
Backslash
\0
Null, not the same as the C# null value
\a
\b
Backspace
\f
form Feed
\n
Newline
\r
Carriage Return
\t
Horizontal Tab
\v
Vertical Tab
Operator C#
Table 2-4. Operators with their precedence and Associativity
Category (by precedence) | Operator(s) | Associativity |
Primary | x.y f(x) a[x] x++ x-- new typeof default checked unchecked delegate | left |
Unary | + - ! ~ ++x --x (T)x | left |
Multiplicative | * / % | left |
Additive | + - | left |
Shift | << >> | left |
Relational | < > <= >= is as | left |
Equality | == != | right |
Logical AND | & | left |
Logical XOR | ^ | left |
Logical OR | | | left |
Conditional AND | && | left |
Conditional OR | || | left |
Null Coalescing | ?? | left |
Ternary | ?: | right |
Assignment | = *= /= %= += -= <<= >>= &= ^= |= => | right |
Kebanyakan operator unary baik atau biner. Operator Unary bentuk ekspresi pada satu variabel, tapi bentuk ekspresi operator biner dengan dua variabel. Listing 2-2 menunjukkan bagaimana operator unary digunakan.
using System;
class Unary
{
public static void Main()
{
int unary = 0;
int preIncrement;
int preDecrement;
int postIncrement;
int postDecrement;
int positive;
int negative;
sbyte bitNot;
bool logNot;
preIncrement = ++unary;
Console.WriteLine("pre-Increment: {0}", preIncrement);
preDecrement = --unary;
Console.WriteLine("pre-Decrement: {0}", preDecrement);
postDecrement = unary--;
Console.WriteLine("Post-Decrement: {0}", postDecrement);
postIncrement = unary++;
Console.WriteLine("Post-Increment: {0}", postIncrement);
Console.WriteLine("Final Value of Unary: {0}", unary);
positive = -postIncrement;
Console.WriteLine("Positive: {0}", positive);
negative = +postIncrement;
Console.WriteLine("Negative: {0}", negative);
bitNot = 0;
bitNot = (sbyte)(~bitNot);
Console.WriteLine("Bitwise Not: {0}", bitNot);
logNot = false;
logNot = !logNot;
Console.WriteLine("Logical Not: {0}", logNot);
}
}
Dalam Listing 2-2, unary variabel diinisialisasi menjadi nol. Ketika pra-kenaikan (++x) operator yang digunakan, unary bertambah dengan 1 dan nilai 1 diberikan ke variabel preIncrement. Pra-pengurangan (--x) operator unary berbalik kembali ke 0 dan kemudian menetapkan nilai ke variabel preDecrement.
Ketika pasca-pengurangan (x--) operator yang digunakan, nilai unary, 0, ditempatkan ke variabel dan kemudian postDecrement adalahunary decremented dengan -1. Selanjutnya pasca-kenaikan (x++)operator bergerak nilai sekarang unary, -1, ke variabel dan kemudian postIncrement increment unary ke 0.
BitNot variabel ini diinisialisasi dengan 0 dan tidak bitwise (~) operator diterapkan. Tidak bitwise (~) operator membalikkan bit dalam variabel. Dalam kasus ini, representasi biner 0, "00.000.000", berubah menjadi -1, "11.111.111".
Sementara (~) operator bekerja dengan membalik bit, yang logis operator negasi (!) Adalah operator logis yang bekerja pada nilai-nilai bool, perubahan benar palsu atau salah untuk benar.Dalam kasus di logNotvariable Kode 2-2, nilainya diinisialisasi false, dan baris berikutnya menerapkan operator negasi logis, (!), Yang reassigns mengembalikan nilai true dan nilai baru, benar, untuk logNot. Pada dasarnya, ini adalah Toggling nilai dari variabel bool, logNot.
Pengaturan positif sedikit rumit. Pada waktu yang sudah diatur, postIncrement variabel yang sama dengan -1. Menerapkan minus (-) operator untuk angka negatif menghasilkan angka positif, yang berarti bahwa postitive akan sama dengan 1, bukan -1. Operator minus (-), yang tidak sama dengan pra-pengurangan operator (--), tidak mengubah nilai postInc - itu hanya berlaku tanda pengingkaran.Operator plus () tidak mempengaruhi nilai angka, menugaskannegatif dengan nilai yang sama postIncrement, -1.
Perhatikan ekspresi (sbyte) (~ bitNot). Setiap operasi dilakukan pada jenis sbyte, byte, pendek, atau ushort kembali nilai-nilai int. Untuk menetapkan hasilnya ke variabel bitNot kami harus menggunakan gips, (Type), operator, di mana Type adalah tipe yang ingin Anda mengkonversi ke (dalam hal ini - sbyte). The cast operator Unary ditampilkan sebagai operator, (T) x, pada tabel 2-4. Cast operator explicity harus dilakukan ketika Anda pergi dari jenis yang lebih besar untuk jenis yang lebih kecil karena potensi hilangnya data.Secara umum, menetapkan jenis yang lebih kecil untuk jenis yang lebih besar tidak masalah, karena tipe yang lebih besar memiliki ruangan untuk menampung seluruh nilai. Juga menyadari bahaya casting antara ditandatangani dan jenis unsigned. Anda ingin pastikan untuk mempertahankan integritas data Anda. Banyak pemrograman dasar teks berisi uraian baik representasi bit variabel dan bahaya eksplisit casting.
pre-Increment: 1
pre-Decrement 0
Post-Decrement: 0
Post-Increment: -1
Final Value of Unary: 0
Positive: 1
Negative: -1
Bitwise Not: -1
Logical Not: true
Listing 2-3. Binary Operators: Binary.cs
using System;
class Binary
{
public static void Main()
{
int x, y, result;
float floatresult;
x = 7;
y = 5;
result = x+y;
Console.WriteLine("x+y: {0}", result);
result = x-y;
Console.WriteLine("x-y: {0}", result);
result = x*y;
Console.WriteLine("x*y: {0}", result);
result = x/y;
Console.WriteLine("x/y: {0}", result);
floatresult = (float)x/(float)y;
Console.WriteLine("x/y: {0}", floatresult);
result = x%y;
Console.WriteLine("x%y: {0}", result);
result += x;
Console.WriteLine("result+=x: {0}", result);
}
}
Floatresult variabel adalah tipe floating point. Kami secara eksplisit melemparkan variabel integer x dan y untuk menghitung nilai titik mengambang.
Ada juga sebuah contoh dari sisa (%) operator. Itu melakukan operasi pembagian pada dua nilai dan mengembalikan sisanya.
Pernyataan terakhir menunjukkan bentuk lain dari penugasan dengan operasi (+ =) operator.Setiap kali Anda menggunakan dengan operasi penugasan operator, itu sama dengan menerapkan operator biner kedua tangan kiri dan kanan sisi operator dan meletakkan hasilnya ke sisi kiri. Contoh bisa ditulis sebagai hasil = hasil + x; dan mengembalikan nilai yang sama.
using System;
class Array
{
public static void Main()
{
int[] myInts = { 5, 10, 15 };
bool[][] myBools = new bool[2][];
myBools[0] = new bool[2];
myBools[1] = new bool[1];
double[,] myDoubles = new double[2, 2];
string[] myStrings = new string[3];
Console.WriteLine("myInts[0]: {0}, myInts[1]: {1}, myInts[2]: {2}", myInts[0], myInts[1], myInts[2]);
myBools[0][0] = true;
myBools[0][1] = false;
myBools[1][0] = true;
Console.WriteLine("myBools[0][0]: {0}, myBools[1][0]: {1}", myBools[0][0], myBools[1][0]);
myDoubles[0, 0] = 3.147;
myDoubles[0, 1] = 7.157;
myDoubles[1, 1] = 2.117;
myDoubles[1, 0] = 56.00138917;
Console.WriteLine("myDoubles[0, 0]: {0}, myDoubles[1, 0]: {1}", myDoubles[0, 0], myDoubles[1, 0]);
myStrings[0] = "Joe";
myStrings[1] = "Matt";
myStrings[2] = "Robert";
Console.WriteLine("myStrings[0]: {0}, myStrings[1]: {1}, myStrings[2]: {2}", myStrings[0], myStrings[1], myStrings[2]);
}
}
myInts[0]: 5, myInts[1]: 10, myInts[2]: 15
myBools[0][0]: true, myBools[1][0]: true
myDoubles[0, 0]: 3.147, myDoubles[1, 0]: 56.00138917
myStrings[0]: Joe, myStrings[1]: Matt, myStrings[2]: Robert
Selanjutnya adalah array bertingkat, myBools. Ini pada dasarnya adalah sebuah array dari array.Kami harus menggunakan operator baru untuk instantiate ukuran array utama dan kemudian menggunakan operator baru lagi untuk setiap sub-array.
Contoh ketiga adalah array dua dimensi, myDoubles. Dapat array multi-dimensi, dengan dimensi masing-masing dipisahkan oleh koma. Itu juga harus diinstanisasi dengan operator baru.
Salah satu perbedaan antara array bertingkat, myBools [][], dan multi-dimensi array, myDoubles [,], adalah multi-dimensi array akan mengalokasikan memori untuk setiap elemen dari masing-masing dimensi, sedangkan array bergerigi hanya akan mengalokasikan memori untuk ukuran setiap array dalam setiap dimensi yang Anda tetapkan. Sebagian besar waktu, Anda akan menggunakan array multi-dimensi, jika Anda membutuhkan berbagai dimensi, dan bergerigi hanya akan menggunakan array dalam keadaan yang sangat khusus ketika Anda dapat menghemat memori yang signifikan secara eksplisit menentukan ukuran array di masing-masing dimensi .
Akhirnya, kita memiliki satu-dimensi array dari tipe string, myStrings.
Dalam setiap kasus, Anda dapat melihat bahwa elemen array diakses dengan mengidentifikasi indeks integer untuk item yang ingin Anda lihat. Ukuran array dapat berupa tipe int nilai. Indeks mereka mulai pada 0.
Kesimpulan
Dalam pelajaran ini Anda belajar bagaimana menulis pernyataan sederhana dan kode program yang bekerja secara linear dari awal sampai akhir. Namun, hal ini tidak berguna karena dapat karena Anda harus mampu membuat keputusan dan menjalankan blok kode yang berbeda tergantung pada kondisi yang berbeda. Saya mengundang anda untuk kembali untuk Pelajaran 3: Kontrol Pernyataan - Seleksi, di mana Anda dapat mempelajari bagaimana untuk cabang logika anda untuk pengambilan keputusan yang lebih kuat.