Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Metodeøvelser | Metoder
Java Utvidet

bookMetodeøvelser

Øvelse

Metoder kan være utfordrende å forstå, så dette kapittelet gir eksempler på ulike metoder i bruk, viser hvordan de fungerer, hvor de kan brukes, og hvordan man kan skrive og kombinere flere metoder effektivt.

Eksempel 1

La oss begynne med en metode som tar et array av typen int og snur det slik at siste verdi blir den første og første blir den siste:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930
package com.example; public class Main { static int[] flipIntArray(int[] array) { int[] result = new int[array.length]; int index = 0; for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } return result; } static void printIntArrayToTheConsole(int[] array) { for (int element : array) { System.out.print(element + " "); } System.out.println(); } public static void main(String[] args) { // do not modify the code below int[] firstArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int[] secondArray = {0, 2, 4, 6, 8, 10, 12, 14, 16}; printIntArrayToTheConsole(flipIntArray(firstArray)); printIntArrayToTheConsole(flipIntArray(secondArray)); } // do not modify the code above }
  • Først, legg merke til metoden flipIntArray på linje 4, som bruker en løkke som teller fra slutten av arrayet og lagrer verdiene i et nyopprettet array med samme størrelse. Det finnes også en index-variabel på linje 6 som øker for å lagre verdiene i result-arrayet;

  • Deretter kan du se metoden på linje 14 fra forrige kapittel, som jeg bruker for å skrive ut arrayet med kun én linje kode;

  • Nå går vi videre til noe interessant. Du kan se på linjene 25-26 at jeg sender en metode som parameter inn i en annen metode. Dette er fordi jeg bruker en metode som returnerer int[] inne i en metode som tar int[] som parameter, og dermed sparer minnet som ellers ville blitt brukt til å opprette variabler. Vi ser at metodene våre fungerer og viser riktige verdier.

Eksempel 2

Anta at vi må skrive en metode som beregner fakultet, og tar en heltallsvariabel som input.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031
package com.example; // do not modify the code below this comment public class Main { // method to calculate the factorial of a number static int calculateFactorial(int input) { int result = 1; // loop to calculate factorial by multiplying each number from 1 to input for (int i = 1; i <= input; i++) { result = result * i; } // return the final result of the factorial calculation return result; } public static void main(String[] args) { // initializing the first number for factorial calculation int first = 5; // initializing the second number for factorial calculation int second = 7; // initializing the third number for factorial calculation int third = 4; // calculating and printing the factorial of the first number System.out.println("Factorial of the first number = " + calculateFactorial(first)); // calculating and printing the factorial of the second number System.out.println("Factorial of the second number = " + calculateFactorial(second)); // calculating and printing the factorial of the third number System.out.println("Factorial of the third number = " + calculateFactorial(third)); } }

I dette eksempelet har vi skrevet en metode som multipliserer den akkumulerende variabelen med tall fra 1 til det gitte tallet for å beregne fakultet. Dette er en enkel tilnærming, og du kan se hvordan vi bruker denne metoden flere ganger i main-metoden, noe som sparer plass og forbedrer lesbarheten i koden. Deretter bruker vi metoden vår inne i System.out.println fordi metoden returnerer en int-verdi.

Eksempel 3

Vi skal skrive en metode som lager en forkortelse fra et array av strenger.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829
package com.example; // do not modify the code below this comment public class Main { // method to create abbreviation by taking first letter of each word static String makeAbbreviation(String[] input) { StringBuilder result = new StringBuilder(); // iterate through each word and append the first letter to result for (String word : input) { result.append(word.toUpperCase().charAt(0)); } // return the abbreviation as a string return result.toString(); } public static void main(String[] args) { // initializing arrays with words for abbreviation String[] firstArray = {"united", "nations"}; String[] secondArray = {"North", "Atlantic", "Treaty", "Organization"}; String[] thirdArray = {"Oh", "my", "God"}; // printing abbreviation for the first array System.out.println(makeAbbreviation(firstArray)); // printing abbreviation for the second array System.out.println(makeAbbreviation(secondArray)); // printing abbreviation for the third array System.out.println(makeAbbreviation(thirdArray)); } }

I denne metoden bruker vi StringBuilder-klassen til å kalle append()-metoden og legge til den store forbokstaven til en opprinnelig tom streng. På denne måten itererer vi gjennom hvert element i arrayet, tar bokstaven på nullte posisjon (første bokstav i hvert ord), konverterer den til store bokstaver ved hjelp av toUpperCase()-metoden, og legger den til resultatet vårt med append()-metoden. Til slutt bruker vi toString()-metoden for å konvertere vår StringBuilder til String.

1. Hva er en returverdi i en metode?

2. Hva returnerer en void-metode?

3. Kan en metode brukes inne i en annen metode?

question mark

Hva er en returverdi i en metode?

Select the correct answer

question mark

Hva returnerer en void-metode?

Select the correct answer

question mark

Kan en metode brukes inne i en annen metode?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you show me the code examples for these methods?

Can you explain how to combine multiple methods in more detail?

Can you provide more examples of using methods as parameters?

Awesome!

Completion rate improved to 2.63

bookMetodeøvelser

Sveip for å vise menyen

Øvelse

Metoder kan være utfordrende å forstå, så dette kapittelet gir eksempler på ulike metoder i bruk, viser hvordan de fungerer, hvor de kan brukes, og hvordan man kan skrive og kombinere flere metoder effektivt.

Eksempel 1

La oss begynne med en metode som tar et array av typen int og snur det slik at siste verdi blir den første og første blir den siste:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930
package com.example; public class Main { static int[] flipIntArray(int[] array) { int[] result = new int[array.length]; int index = 0; for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } return result; } static void printIntArrayToTheConsole(int[] array) { for (int element : array) { System.out.print(element + " "); } System.out.println(); } public static void main(String[] args) { // do not modify the code below int[] firstArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int[] secondArray = {0, 2, 4, 6, 8, 10, 12, 14, 16}; printIntArrayToTheConsole(flipIntArray(firstArray)); printIntArrayToTheConsole(flipIntArray(secondArray)); } // do not modify the code above }
  • Først, legg merke til metoden flipIntArray på linje 4, som bruker en løkke som teller fra slutten av arrayet og lagrer verdiene i et nyopprettet array med samme størrelse. Det finnes også en index-variabel på linje 6 som øker for å lagre verdiene i result-arrayet;

  • Deretter kan du se metoden på linje 14 fra forrige kapittel, som jeg bruker for å skrive ut arrayet med kun én linje kode;

  • Nå går vi videre til noe interessant. Du kan se på linjene 25-26 at jeg sender en metode som parameter inn i en annen metode. Dette er fordi jeg bruker en metode som returnerer int[] inne i en metode som tar int[] som parameter, og dermed sparer minnet som ellers ville blitt brukt til å opprette variabler. Vi ser at metodene våre fungerer og viser riktige verdier.

Eksempel 2

Anta at vi må skrive en metode som beregner fakultet, og tar en heltallsvariabel som input.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031
package com.example; // do not modify the code below this comment public class Main { // method to calculate the factorial of a number static int calculateFactorial(int input) { int result = 1; // loop to calculate factorial by multiplying each number from 1 to input for (int i = 1; i <= input; i++) { result = result * i; } // return the final result of the factorial calculation return result; } public static void main(String[] args) { // initializing the first number for factorial calculation int first = 5; // initializing the second number for factorial calculation int second = 7; // initializing the third number for factorial calculation int third = 4; // calculating and printing the factorial of the first number System.out.println("Factorial of the first number = " + calculateFactorial(first)); // calculating and printing the factorial of the second number System.out.println("Factorial of the second number = " + calculateFactorial(second)); // calculating and printing the factorial of the third number System.out.println("Factorial of the third number = " + calculateFactorial(third)); } }

I dette eksempelet har vi skrevet en metode som multipliserer den akkumulerende variabelen med tall fra 1 til det gitte tallet for å beregne fakultet. Dette er en enkel tilnærming, og du kan se hvordan vi bruker denne metoden flere ganger i main-metoden, noe som sparer plass og forbedrer lesbarheten i koden. Deretter bruker vi metoden vår inne i System.out.println fordi metoden returnerer en int-verdi.

Eksempel 3

Vi skal skrive en metode som lager en forkortelse fra et array av strenger.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829
package com.example; // do not modify the code below this comment public class Main { // method to create abbreviation by taking first letter of each word static String makeAbbreviation(String[] input) { StringBuilder result = new StringBuilder(); // iterate through each word and append the first letter to result for (String word : input) { result.append(word.toUpperCase().charAt(0)); } // return the abbreviation as a string return result.toString(); } public static void main(String[] args) { // initializing arrays with words for abbreviation String[] firstArray = {"united", "nations"}; String[] secondArray = {"North", "Atlantic", "Treaty", "Organization"}; String[] thirdArray = {"Oh", "my", "God"}; // printing abbreviation for the first array System.out.println(makeAbbreviation(firstArray)); // printing abbreviation for the second array System.out.println(makeAbbreviation(secondArray)); // printing abbreviation for the third array System.out.println(makeAbbreviation(thirdArray)); } }

I denne metoden bruker vi StringBuilder-klassen til å kalle append()-metoden og legge til den store forbokstaven til en opprinnelig tom streng. På denne måten itererer vi gjennom hvert element i arrayet, tar bokstaven på nullte posisjon (første bokstav i hvert ord), konverterer den til store bokstaver ved hjelp av toUpperCase()-metoden, og legger den til resultatet vårt med append()-metoden. Til slutt bruker vi toString()-metoden for å konvertere vår StringBuilder til String.

1. Hva er en returverdi i en metode?

2. Hva returnerer en void-metode?

3. Kan en metode brukes inne i en annen metode?

question mark

Hva er en returverdi i en metode?

Select the correct answer

question mark

Hva returnerer en void-metode?

Select the correct answer

question mark

Kan en metode brukes inne i en annen metode?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5
some-alt