JP SS 8 Instrukcje, pętle


Języki Programowania
Instrukcje. Pętle
wyrażenie if-else
ż składnia
ż if (condition)
statement1
else statement2;
ż warunek  boolean
ż wyrażenia
ż instrukcja pojedyncza
{ //example of if-else
ż blok instrukcji
int v=5;
int summ=0;
Uwaga:
if( v > 0 ){
ż warunek jest wyrażeniem boolean i może
sum += v*v;
używać arytmetycznych i logicznych relacji
v++;
ż ważne jest pierszeństwo reguł
}
ż bloki powinny być zdefiniowane w
nawiasach { } else summ = 42;
}
2
1
wyrażenie if
ż skąłdnia
ż if (condition)
action;
ż warunek  boolean
ż działanie (action)
ż instrukcja pojedyncza
ż blok instrukcji
{ //example of if
int v=5;
int summ=0;
if( v > 0 ){
sum += v*v;
v++;
}
}
3
Zagnieżdżanie if
ż można stosować kolejny if
jako działanie dla
spełnionego warunku lub dla
else
ż powinno się stosować
{ //nested if example
wcięcia
boolean isLeapYear;
ż należy stosować nawiasy dla
if (year % 4 == 0)
wyrażenia if i dla else
if (year % 100 != 0)
(które wskazują
isLeapYear = false;
przynależność)
? if (year % 1000 == 0)
isLeapYear = true;
else isLeapYear = false;
}
4
2
Porównywanie wartości zmiennoprzecinkowych
ż należy rzadko użyć operatora równości (==) kiedy porównuje się
wartości float lub double
ż dwie liczby zmiennoprzecinkowe są dokładnie równe wtedy kiedy
mają dokładnie taką samą reprezentację bitową
ż obliczenia często powodują nieznaczne różnice, które mogą być bez
znaczenia
ż w wielu sytuacjach można przyjąć, że dwie liczby
zmiennoprzecinkowe są "wystarczająco blisko", nawet jeśli nie są
dokładnie równe
ż można przyjąć następującą technikę:
if (Math.abs(f1 - f2) < TOLERANCE)
System.out.println ("Essentially equal");
ż gdy różnica pomiędzy tymi dwoma liczbami jest mniejsza niż wartość
tolerancji, są one uznane za równe
ż tolerancja może wynosić np. 0.000001
5
Porównywanie łańcuchów (Strings)
ż pamiętaj: w Java ciąg znaków jest obiektem
ż należy użyć metody equals do porównania znaków z
zachowaniem kolejności
ż metoda equals zwraca typ boolean
if (name1.equals(name2))
System.out.println ("Same name");
6
3
Porównywanie obiektów
ż operator == może być stosowany do obiektów  zwraca
true jeśli dwie referencje są aliasem
ż metoda equals jest zdefiniowana dla wszystkich
obiektów, ale może być redefiniowana w klasie String
7
Operator warunkowy ? :
ż Java posiada operator warunkowy do porównania dwóch wyrażeń
ż jego składnia:
condition ? expression1 : expression2
ż jeśli condition jest true, expression1 jest wykonywane; jeśli
jest false, wykonywane jest expression2
8
4
wyrażenie switch
switch (expression)
jeśli expression
{
switch
ma wartość value2,
case value1:
i
następuje skok do:
statement-list1
case
case value2:
statement-list2
case value3:
statement-list3
case ...
}
ż każdy case zawiera wartość oraz listę wyrażeń (instrukcji)
ż sprawdzane są kolejne case
9
wyrażenie switch c.d.
switch (option)
ż często stosujemy break do przerwania listy
{
sprawdzeń
case 'A':
ż wyrażenie break przenosi sterowanie na
aCount++;
koniec switch
break;
ż czasami jest to ważne
case 'B':
bCount++;
ż w wyrażeniu switch rezultatem musi być
break;
typ całkowity: int, char, byte, short
case 'C':
ż nie można stosować boolean, float,
cCount++;
double lub innych typów całkowitych
break;
}
10
5
wyrażenie switch c.d.
ż switch ma opcjonalnie default case
ż domyślny case nie ma przypisanej wartości i używa słowa
default
ż jeśli żaden case nie pasuje to wykonuje się default
public void switchExample(int digit){
switch (digit){
case 1: System.out.println("First ");
case 2: System.out.println("Second ");
case 3: System.out.println("Third ");
default: System.out.println("Other ");
}
}
11
Pętle
ż repetycje(lub iteracje) pozwalają wykonywać wyrażenia wiele razy
ż często nazywamy je pętlami (loops)
ż podobnie jak wyrażenia warunkowe są sterowane przez wyrażenie
typu boolean
ż Java ma 3 rodzaje pąetli:
żwhile
żdo
żfor
ż Programista powinien wybrać odpowiedni rodzaj pętli w zależności
od sytuacji
12
6
wyrażenie while
ż jeśli wyrażenie w
pętli while ma
początkowo false to
int count = 1;
wyrażenia w pętli nie
while (count <= 5)
wykonają się
{
System.out.println (count);
ż dlatego ciało pętli
count++;
while wykona się
}
zero lub więcej razy
13
przykłady z while
ż Obliczanie kolejnych potęg liczby 2 (Java JDK)
ż przy okazji, proszę zwrócić uwagę, jak konwertować String args [0] do
liczby całkowitej (int)
14
7
Entore Buggati:
 I build cars to go, not to stop."
Pętle nieskończone
ż ciało pętli while w końcu musi się dać stan false
ż jeśli nie to mamy pętlę nieskończoną infinite loop,
która będzie wykonywana, dopóki użytkownik nie
przerwie programu
ż jest to częsty błąd logiczny
ż należy zawsze dokładnie sprawdzić logikę
programu, aby upewnić się, że pętle zakończą się
normalnie
int count = 1;
while (count <= 25)
pętla będzie się wykonywać
{
aż nie zostanie przerwania
System.out.println (count);
(Ctrl-C w DOS) lub do
count = count - 1;
momentu błędu
}
przepełnienia
15
Zagnieżdżanie pętli
ż Ile razy wystąpi string "Here ?
count1 = 1;
while (count1 <= 10)
{
count2 = 1;
while (count2 <= 20)
{
System.out.println ("Here");
count2++;
}
count1++;
}
odpowiedz: 10 * 20 = 200 razy
16
8
Pętle zagnieżdżone
ż przykład: liczby Pitagorasa
ż liczby(a, b, c) spełniające regułę: a2+b2=c2
ż zadanie: podać wszystkie liczby Pitagorasa
dla a, b Ł 100
class Pitagoras{
static void allTriples(int n){
for (int a=1; a <= n; a++)
for (int b = a; b <= n; b++){
int c = intSqrt(a*a+b*b);
if (a*a+b*b == c*c)
System.out.println( ( +a+ , +b+ , +c+ ) );
}
}
static int intSqrt(int n){
return (int)(Math.sqrt(n));
}
}
17
wyrażenie do
ż wyrażenie jest wykonywane raz na
początku, a potem jest warunek jest
spełniony
ż powtarza się dopóki nie będzie false
do int count = 0;
do
{
{
statement;
count++;
} System.out.println(count);
} while (count < 5);
while (condition)
18
9
wyrażenie for
for(initialization;condition;increment)
{
statement1;
statement2;
...
}
=
initialization;
// for loop  example
while(condition)
// calculate N!
{
int sum = 0;
statement1;
for (int i=1; i<=N; i++)
statement2;
sum+=1;
...
System.out.println(sum);
increment;
}
w inicjalizacji można deklarować zmienną
19
wyrażenie for
ż Podobnie jak dla while, warunek dla for jest
sprawdzany przed wykonaniem ciała pętli
ż więc ciało pętli for wykona się 0 lub więcej razy
ż pętle for są odpowiednie do wykonania wyrażenia z
określoną liczbą powtórzeń
ż każde z wyrażeń w nagłówku pętli for jest oopcjonalne
ż initialization
ż condition
ż increment
for(initialization;condition;increment)
{
...
}
20
10
przerywanie pętli
ż składnia: break;
ż przerywa (lub przełącza) pętle
natychmiastowo
ż może być używane tylko dla:
ż while
{// server
ż for
while(true{
ż do-while
acceptRequest();
if (timeOut())
ż lub w wyrażeniu switch
break;
ż używane, gdy chcemy wyjść z pętli
provideService();
przed "normalnym" zakończeniem, np.
}
gdy szukany element został już
}
znaleziony
21
kontynuacja pętli
ż składnia: continue  skok na początek ciała pętli
ż używane aby rozpocząć następną iterację przerywając dalsze
wykonywanie ciała pętli
/** read numbers from keyboard until you get 0.
* ignore numbers < 10 or > 60
* write an average
*/
Public static void readComputeAverage(){
java.util.Scanner in = new java.util.Scanner(System.in);
System.out.println( Please enter the number );
int sum = 0, counter = 0;
while(true){
int n = in.nextInt();
if(n==0)
break; //zakończenie
if(n <20 || n > 60)
continue; //kontynuacja
sum += n;
counter++;
} // end while
System.out.println( Average is  + (float)sum/counter);
}
22
11
zakończenie metody
ż instrukcja return
ż przerywa metodę natychmiast
ż może zwracać wartość
ż metody które zwracają rezultat
ż muszą mieć słowo return
ż return stanKonta+16;
ż metody bez rezultatu (np. void)
ż muszą mieć słowo return
ż return;
ż  klasyczni programiści unikają umieszczania return
wewnątrz pętli
23
12


Wyszukiwarka

Podobne podstrony:
JP SS 6 Klasy i obiekty
JP SS 2 algorytmy i podstawy programowania
JP SS 5 podstawy Java
JP SS 4 start Java
JP SS 5 podstawy Java (3)
JP SS Interfejs graficzny
JP SS 1 podstawy JP
JP SS 4 wprowadzenie Java
JP SS 1 podstawy JP
JP SS 5 podstawy Java
JP SS 7 Klasy i obiekty
JP SS 6 BlueJ
JP SS 3 jezyk C
JP SS 3 jezyk C
JP SS 4 start Java
JP SS 7 Typy i operacje
JP SS 9 Tablice IO wyjątki
JP SS 3 jezyk C

więcej podobnych podstron