problem z pętlą for podczas wyszukiwania liniowego.

0

Od kilku dni uczę się Javy chciałbym aby ktoś mi pomógł wytłumaczyć czemu pętla for nie kontynuuję inkrementacji dopóki liczba nie jest odnaleziona.


import java.util.Scanner;

public class linearSearch {
	public static void main(String[] args) {
		int list[] = new int[100];
		int n;
		
		Scanner input = new Scanner(System.in);
		System.out.print("What value would you like to find?: ");
		n = input.nextInt();
		
		for (int i = 0; i < list.length; i++) {
			if (list[i] == n) {
				System.out.println("Your value: " + i);
			}	
		}
		
	}
}
 

Teraz tak, użytkownik wpisuje liczbę do zmiennej 'n' następnie wykonuję się pętla for w której przęglądany jest każdy index z tablicy[100] i jeżeli index pasuję do zmiennej 'n' wtedy jest drukowany na ekran.
Jeżeli podam liczbę 0 to działa, ponieważ jest to pierwszy index w tablicy a każdy kolejny już nie. Wiem, że może być to proste ale dopiero zaczynam i chciałbym to zrozumieć.

3

Do Twojego opisu pasował by taki kod

for (int i = 0; i < list.length; i++) {
            if (i == n) {
                System.out.println("Your value: " + list[i]);
            }   
        }

Który zresztą jest bez sensu, bo możesz wyświetlić od razu list[n] i cała pętla do śmieci....

Podsumowanie
= list[a] - wyciągasz zawartość z tablicy list pod indeksem a
a - index

Poza tym ta tablica jest pusta -nic tam nie wstawiłeś (są same zera).

0
jarekr000000 napisał(a):

Poza tym ta tablica jest pusta -nic tam nie wstawiłeś (są same zera).

No tak, zapomniałem o tym. Teraz już działa, musiałem tylko wypełnić tablicę liczbami. Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1