For statement jest używane do tworzenia pętli jakiegoś kodu i umożliwia nam powtarzanie kodu.
Tworzę nowy projekt w Intellij o nazwie „forStatement”, w którym wpisuję kod zamierzający obliczyć stopę procentową bazując na ilości pieniędzy będącą parametrem
public class Main {
public static void main(String[] args) {
System.out.println("10,000 at 2% = "+ calculateInterest(10000.0,2.0));
}
public static double calculateInterest(double amount, double interestRate){
return(amount*(interestRate/100));
}
po uruchomieniu kodu, wyświetla się:
10,000 at 2% = 200.0
200.0 znaczy 200.0 dolarów w 2% stopie procentowej od ilości pieniędzy w liczbie 10,000.
Jeśli chcemy obliczyć 3%, 4%, 5% stopę możemy użyć następującego kodu:
public class Main {
public static void main(String[] args) {
System.out.println("10,000 at 2% = "+ calculateInterest(10000.0,2.0));
System.out.println("10,000 at 3% = "+ calculateInterest(10000.0,3.0));
System.out.println("10,000 at 4% = "+ calculateInterest(10000.0,4.0));
System.out.println("10,000 at 5% = "+ calculateInterest(10000.0,5.0));
}
public static double calculateInterest(double amount, double interestRate){
return(amount*(interestRate/100));
}
}
wtedy w oknie konsoli wyświetli się:
10,000 at 2% = 200.0
10,000 at 3% = 300.0
10,000 at 4% = 400.0
10,000 at 5% = 500.0
jeśli mamy obliczyć jeszcze więcej stóp procentowych, ,żeby kod był czytelny, możemy użyć „for statement”, które często nazywane jest „for loop”. Dzięki temu możemy wielokrotnie „zapętlować” kod, powtórzyć blok kodu określoną liczbę razy dopóki są spełnione warunki.
Podstawowa struktura for statement jest następująca:
for(init; termination; increment);
„init” (initialization) znaczy, że kod jest zapoczątkowany ( początek pętli), jest uruchamiany tylko raz;
„termination” oznacza, że gdy wyrażenie oszacuje błąd, wówczas pętla się kończy;
wyrażenie „increment” (wzrost, przyrost, podwyżka) jest przywoływane po każdym powtórzeniu pętli. Jest absolutnie dozwolone dla tego wyrażenia żeby podwyższyć lub obniżyć wartość.
public class Main {
public static void main(String[] args) {
System.out.println("10,000 at 2% = "+ calculateInterest(10000.0,2.0));
System.out.println("10,000 at 3% = "+ calculateInterest(10000.0,3.0));
System.out.println("10,000 at 4% = "+ calculateInterest(10000.0,4.0));
System.out.println("10,000 at 5% = "+ calculateInterest(10000.0,5.0));
for(int i=0; i<5; i++){
System.out.println("Loop " + i + " hello!");
}
}
public static double calculateInterest(double amount, double interestRate){
return(amount*(interestRate/100));
}
po uruchomieniu powyższego kodu wyświetla się w konsoli:
10,000 at 2% = 200.0
10,000 at 3% = 300.0
10,000 at 4% = 400.0
10,000 at 5% = 500.0
Loop 0 hello!
Loop 1 hello!
Loop 2 hello!
Loop 3 hello!
Loop 4 hello!
Zaczęliśmy od i= 0 i kod działał do wartości 4, ponieważ mieliśmy jako wartość kończącą pętlę liczbę 5 ( warunkiem było i<5).
Zadanie
Używając for statement, przywołaj metodę calculateInterest z parametrami: amount (ilością) 10000 i interestRate (stopą procentową) 2,3,4,5,6,7 i 8 i wyświetl rezultaty w konsoli.
Moje rozwiązanie:
public class Main {
public static void main(String[] args) {
System.out.println("10,000 at 2% = "+ calculateInterest(10000.0,2.0));
System.out.println("10,000 at 3% = "+ calculateInterest(10000.0,3.0));
System.out.println("10,000 at 4% = "+ calculateInterest(10000.0,4.0));
System.out.println("10,000 at 5% = "+ calculateInterest(10000.0,5.0));
for(int i=2; i<9; i++){
System.out.println("10,000 at " + i+"%" + " = " + calculateInterest(10000.0,i));
}
}
public static double calculateInterest(double amount, double interestRate){
return(amount*(interestRate/100))
}
W konsoli wyświetla się:
10,000 at 2% = 200.0
10,000 at 3% = 300.0
10,000 at 4% = 400.0
10,000 at 5% = 500.0
10,000 at 2% = 200.0
10,000 at 3% = 300.0
10,000 at 4% = 400.0
10,000 at 5% = 500.0
10,000 at 6% = 600.0
10,000 at 7% = 700.0000000000001
10,000 at 8% = 800.0
Aby uniknąć sytuacji, którą zauważyć można przy 7%, gdzie widać wiele zer po przecinku możemy doprecyzować nasz kod przez:
public class Main {
public static void main(String[] args) {
System.out.println("10,000 at 2% = "+ calculateInterest(10000.0,2.0));
System.out.println("10,000 at 3% = "+ calculateInterest(10000.0,3.0));
System.out.println("10,000 at 4% = "+ calculateInterest(10000.0,4.0));
System.out.println("10,000 at 5% = "+ calculateInterest(10000.0,5.0));
for(int i=2; i<9; i++){
System.out.println("10,000 at " + i+"%" + " = " + String.format("%.2f",calculateInterest(10000.0,i)));
}
}
public static double calculateInterest(double amount, double interestRate){
return(amount*(interestRate/100));
}
}
wówczas wyświetla się:
10,000 at 2% = 200.0
10,000 at 3% = 300.0
10,000 at 4% = 400.0
10,000 at 5% = 500.0
10,000 at 2% = 200,00
10,000 at 3% = 300,00
10,000 at 4% = 400,00
10,000 at 5% = 500,00
10,000 at 6% = 600,00
10,000 at 7% = 700,00
10,000 at 8% = 800,00
Zadanie
jak zmodyfikować powyższy kod, aby wyliczał te same rzeczy co powyżej, tylko zaczynał od 8% a kończył na 2%.
Moje rozwiązanie:
package com.wordpress.programujeodzera;
public class Main {
public static void main(String[] args) {
System.out.println("10,000 at 2% = "+ calculateInterest(10000.0,2.0));
System.out.println("10,000 at 3% = "+ calculateInterest(10000.0,3.0));
System.out.println("10,000 at 4% = "+ calculateInterest(10000.0,4.0));
System.out.println("10,000 at 5% = "+ calculateInterest(10000.0,5.0));
for(int i=2; i<9; i++){
System.out.println("10,000 at " + i+"%" + " = " + String.format("%.2f",calculateInterest(10000.0,i)));
}
for(int i=8; i<=8&&i>=2; i--){
System.out.println("10,000 at " + i+"%" + " = " + String.format("%.2f",calculateInterest(10000.0,i)));
}
}
public static double calculateInterest(double amount, double interestRate){
return(amount*(interestRate/100));
}
}
wówczas wyświetli się w konsoli:10,000 at 2% = 200.0
10,000 at 3% = 300.0
10,000 at 4% = 400.0
10,000 at 5% = 500.0
10,000 at 2% = 200,00
10,000 at 3% = 300,00
10,000 at 4% = 400,00
10,000 at 5% = 500,00
10,000 at 6% = 600,00
10,000 at 7% = 700,00
10,000 at 8% = 800,00
10,000 at 8% = 800,00
10,000 at 7% = 700,00
10,000 at 6% = 600,00
10,000 at 5% = 500,00
10,000 at 4% = 400,00
10,000 at 3% = 300,00
10,000 at 2% = 200,00
można również uprościć fragment kodu: for(int i=8; i<=8&&i>=2; i–) do
for(int i=8; i>=2; i–) i osiągniemy ten sam rezultat.