ÖVNINGSUPPGIFT

Uppgift 4 – Sök efter ett värde

Försök själv först. Ledtrådar och facit finns längre ner – helt utan inloggning.


Nyckelord: Array, Scanner

Programmerare

Skriv ut index för första förekomsten av ett värde i en array

Skriv ett program som ber användaren att ange en siffra mellan 1 – 20 och sedan med hjälp av ett Scanner-objekt läsa in och spara ned värdet. Jämför sedan det värdet mot elementen i den givna array values nedan. Skriv ut index för första förekomsten av värdet i array:n och ifall värdet inte finns i array:n så skriv ut att “värdet kunde inte hittas”.

Programmet ska även kolla så att värdet som användaren skrivit in ligger i intervallet 1 <= tal <= 20.

Testa gärna att användaren anger någon av de siffror som det finns fler än en förekomst av i array:n för att se så programmet skriver ut första förekomsten, t.ex. siffran 5.

Exempel:

  • Anger användaren värdet 4 ska programmet skriva ut:  Index: 2
  • Anger användaren värdet 7 ska programmet skriva ut:  Värdet kunde inte hittas
  • Anger användaren värdet 21 ska programmet skriva ut: Ogiltigt värde
public static void main(String[] args) {

    int[] values = {2, 5, 4, 5, 1, 8, 9, 10, 20, 8, 2, 5, 19, 17, 15, 13};      

}
Lösning
import java.util.Scanner;
/**
 * Created by ProgrammeraJava.se.
 */
public class Main {
    public static void main(String[] args) {
        int[] values = {2, 5, 4, 5, 1, 8, 9, 10, 20, 8, 2, 5, 19, 17, 15, 13};
        Scanner input = new Scanner(System.in);
        // Frågar om ett tal och sparar ner inputen i variabeln val
        System.out.println("Ange tal i arrayen: ");
        int val = input.nextInt();
        /* Kontrollerar att inputen är inom det angivna intervallet.
         * Stänger av programmet om fel intervall angivits */
        if(val < 1 || val > 20){
            System.out.println("Ogiltigt värde");
            System.exit(0);
        }
        /* Loopar igenom alla värden i listan. 
         * Skriver ut indexet på första förekomsten av värdet.
         * Stänger sedan av programmet. 
         */
        for(int i = 0; i < values.length; i++){
            if(val == values[i]){
                System.out.println("Index: " + i);
                System.exit(0);
            }
        }
        System.out.println("Värdet kunde inte hittas");
    }
}

Tillbaka till översikt