Deklaracje zmiennej:
typ nazwa_zmiennej;
Zmienne przechowują wartości:
a-zA-z0-9_
(cyfra nie może być pierwszym znakiem) Przykład:
int i; // typ całkowity (4B)
long j; // typ całkowity (4B)
float x; // typ rzeczywisty (4B)
double y; // typ rzeczywisty (8B)
char znak; // typ znakowy (1B)
string napis; // łańcuch znakowy (napis, kolekcja znaków)
using System;
// tu nie deklarujemy zmiennych !!!
namespace Zmienne
{
// tu też nie deklarujemy zmiennych
class Program
{
// Zmienna zadeklarowana w tym miejscu staje się polem klasy Program
int a;
static void Main(string[] args)
{
// Zmienna zadeklarowana w tym miejscu jest dostępna w funkcji Main
int b;
}
}
}
Operator przypisania =
zmienna = wartość;
Przykład:
i = 2;
j = 4L; // wartość long
x = 3.14f; // wartość float
y = 4.600; // wartość double
c = '*'; // znak gwiazdki
napis = "Witaj Świecie"; // łańcuch znakowy
typ zmienna = wartość;
int i = 2;
long j = 4L;
float x = 3.14f;
double y = 4.600;
char c = 'X';
string napis = "Witaj Świecie";
var zmienna = wartość;
var i = 2;
var j = 4L;
var x = 3.14f;
var y = 4.600;
var c = 'X';
var napis = "Witaj Świecie";
Zapis w kodzie C# | Typ | Opis |
---|---|---|
1 | int | Liczba całkowita ze znakiem |
1U | uint | Liczba całkowita bez znaku |
1L | long | Liczba całkowita 64-bitowa |
1UL | ulong | Liczba całkowita 64-bitowa bez znaku |
1F | float | Liczba |
1.2M | decimal | Liczba całkowita ze znakiem o zwiększonej precyzji (dzięki zapisowi podobnemu do liczb zmiennoprzecinkowych) |
Zapis w kodzie C# | Typ | Opis |
---|---|---|
1.0 | double | Liczba zmiennoprzecinkowa |
1.2E3 | double | Liczba zmiennoprzecinkowa w notacji naukowej ($1.2\times 10^{3} = 12000.0$ ) |
0123 | uint | Liczba ósemkowa |
0x1a | uint | Liczba szesnastkowa |
Operator | Opis | Przykład |
---|---|---|
+ | dodawanie argumentów | x = x + 1 |
- | odejmowanie argumentów | x = y - 5 |
* | mnożenie operatorów | x = 5 * 5 |
/ | dzielenie operatorów | x = x / y |
% | operacja dzielenia modulo | x = x % 3 |
++ | zwiększanie wartości o 1 | x++ lub ++x |
-- | zmniejszanie wartości o 1 | x-- lub --x |
Kolejność operacji: mnożenie i dzielenie przed odejmowaniem i odejmowaniem.
Pierwszeństwo maja wyrażenia w nawiasach ( )
Przykład:
double x = 3.14;
int k = 42;
char znak = 'C';
k = k + 1;
x = k - 100;
x = x * x;
k = x / 2;
k++;
--k;
Jaki będzie wynik?
1 + 2 * 3
(1 + 2) * 3
1 / 2
1.0 / 2
1 / 2.0
1.0 / 2.0 * 3.0
int i = 1;
Console.WriteLine(++i);
Console.WriteLine(i++);
Napisz program, który wyznaczy pole oraz obwód koła o podanym promieniu $r=2$.
Liczba $\pi$ w C#
Math.PI
W jaki sposób wczytać liczbę z konsoli?
Klasa Convert
k = System.Convert.ToInt32(x);
y = System.Convert.ToDouble(x);
W jaki sposób wypisac liczbę w konsili?
int a = 42;
Console.WriteLine("To jest liczba " + a.ToString());
Console.WriteLine("To jest liczba {0}", a);
Console.WriteLine($"Liczba wynosi {a}");
Napisz program, który poprosi użytkownika o podanie 2 liczb rzeczywistych a następnie wypisze ich sumę, różnicę, iloczyn oraz iloraz.
Przykładowy wynik działania programu:
Podaj dwie liczby:
1
3
Oto wynik:
1.0 + 3.00 = 4.000
1.0 - 3.00 = -2.000
1.0 * 3.00 = 3.000
1.0 / 3.00 = 0.333
Co się stanie gdy druga podana liczba będzie zerem?
Operator | Opis | Przykład |
---|---|---|
== | czy równe ? | x == y |
> | czy większe ? | x > y |
< | czy mniejsze ? | x < y |
>= | czy większe lib równe? | x >= y |
<= | czy mniejsze lub równe? | x <= y |
Przykład
if ( x == 0 )
{
Console.WriteLine("Pamiętaj cholero nie dziel przez zero!");
}
Operator | Opis | Przykład |
---|---|---|
&& | operator i (AND) | x>5 && x<10 |
|| | operator lub (OR) | x>5 || x <=-5 |
! | negacja (operator NOT) | !x |
Przykład
if ( a > 0 && b < 0 )
{
Console.WriteLine("Obie wartości są dodatnie");
}
Operator | Opis | Przykład |
---|---|---|
= | prosty operator przypisania. | x = y + z |
+= | operator dodawania i przypisywania w jednym. | x += y |
-= | operator odejmowania i przypisywania w jednym. | x -= 2.3 |
*= | operator mnożenia i przypisania w jednym. | x*=Math.PI |
/= | operator dzielenia i przypisania w jednym. | x /= 2 |
sizeof() | zwraca rozmiar typu danych w bajtach | sizeof(int) , rozmiar: 4 |
typeof() | zwraca typ klasy | typeof(klasa) |
? : | wynikiem jest jedna z dwóch wartość zależnie od spełnienia warunku | x = (a < b) ? „TAK” : „NIE” |
is | sprawdzenie, czy obiekt jest danego typu | if (x is Int32) |
as | rzutowanie bez zwracania wyjątku jeżeli rzutowanie się nie uda (tylko typy referancyne i nulowalne) | y = x as string |
Rzutowanie jawne
(double)42 // wynik 42.0
(int)0.99 // wynik 0, utrata precyzji !!!
Rzutowanie niejawne
double x = 42; // Jest OK
int x = 0.5; // NIE jest OK, błąd
int x = (int)0.5; // Jawne rzutowanie, jest OK ale utrata dokładności
Zamiana łańcuchów na typy liczbowe
ToInt32(), ToDouble(), ToString(), …
double x = Convert.ToDouble(Console.ReadLine());
Parse()
dla każdego typu wbudowanego double x = double.Parse(Console.ReadLine());
Zamiana na łancych znakowy:
ToString()
każdego obiektu int x = 42;
Console.WriteLine(x.ToString());
Frormat(wartosc)
klasy String int x = 42;
string s = String.Format("Liczba x = {0}", x);
Składnia: {indeks:format}
double x = 2.0 / 3.0;
Console.WriteLine("Zmienna x = {0}", x);
Console.WriteLine("Zmienna x = {0:F}", x);
Console.WriteLine("Zmienna x = {0:F1}", x);
Console.WriteLine("Zmienna x = {0:C}", x);
Console.WriteLine("Zmienna x = {0:P1}", x);
Zmienna x = 0,6666666666666666
Zmienna x = 0,667
Zmienna x = 0,7
Zmienna x = 0,67 zł
Zmienna x = 66,7%
Format | Opis | Przykład |
---|---|---|
F lub f | fixed-point liczba z przecinkiem | „F” → 1,294 |
„F1” → 1,3 | ||
E lub e | notaca naukowa | „E” → 1,123E+002 |
C lub c | waluta (zależnie od ustawień lokalizaci) | „C” → 10,10 zł |
P lub p | procent wartości ułamkowej | „P” → 10,1% |
X lub x | zapis szesnastkowy (tylko liczby całkowite) | „X” → FF |
Zobacz: Standard numeric format strings
Składnia: {indeks,szerokość:format}
double x = 1.29;
Console.WriteLine("|{0}|", x);
Console.WriteLine("|{0,10}|", x);
Console.WriteLine("|{0,-10}|", x);
Console.WriteLine("|{0,-10:F1}|", x);
|1,29|
| 1,29|
|1,29 |
|1,3 |
String.Format(format)
$„{zmianna:format}”
ToString(format)
double x = 1.29;
var s1 = String.Format("|{0,-10:F1}|", x);
var s2 = $"|{x,-10:F1}|";
var s3 = x.ToString("F1"); // tylko format wartości
Console.WriteLine(s1 + '\n' + s2 + '\n' + s3 );
|1,3 |
|1,3 |
1,3