Jblue/Java programeren Help

Status
Niet open voor verdere reacties.

Seantf

Gebruiker
Lid geworden
23 apr 2013
Berichten
140
Het probleem is dat ik alleen maar in de False blijf uitkomen nu behalve als ik de laatste uit mijn array pak.
Hoe kan ik dit oplossen?

(Als dit niet duidelijk is zeg het dan probeer ik het duidelijker op te schrijven)

Ben net begonnen met programeren

Code:
public class Drankjes{

    public String[] drankjes = new String [3];
 public void Namenzoeken(String bestel)
    {
        
        drankjes[0] = "Cola";
        drankjes[1] = "Fanta";
        drankjes[2] = "Sprite";
        
        
      
        for(int i = 0; i < drankjes.length; i++)
        {
            if(drankjes[i].equals(bestel))
            {
                Check = true;
                            } 
            else
            {
                Check = false;
            }
        }
    
              if(Check == true)
           {
               System.out.println("Drankje gevonden");
               
            }
           else
           {
               System.out.println("Drankje niet gevonden");      

        
           }
 
Laatst bewerkt:
Je zet altijd de waarde van Check. Dus als (bijv.) het tweede drankje de juiste is, dan wordt hij True maar je for statement loopt door en zet bij het derde drankje Check weer op False.

Je kunt dus (bijv.) beter de waarde van Check op False zetten voordat je de bestelling gaat testen en 'm alleen veranderen als het drankje gevonden wordt.

Code:
public class Drankjes{

    public String[] drankjes = new String [3];
 public void Namenzoeken(String bestel)
    {
        
        drankjes[0] = "Cola";
        drankjes[1] = "Fanta";
        drankjes[2] = "Sprite";
        Check = False;
        
      
        for(int i = 0; i < drankjes.length; i++)
        {
            if(drankjes[i].equals(bestel))
            {
                Check = true;
                            }
        }
    
              if(Check == true)
           {
               System.out.println("Drankje gevonden");
               
            }
           else
           {
               System.out.println("Drankje niet gevonden");      

        
           }

Tijs.
 
Mijn Java zit heeeel ver, maar als ik me niet vergis, ontbreekt er een break; in je lus wanneer je jouw item gevonden hebt. Nu blijf je verderzoeken (de lus gaat door) ook nadat je het gevonden hebt.
 
@Johantrax: Jouw oplossing kan ook, dan springt het programma uit de for-lus zodra de bestelling matcht met een drankje uit het array van 3 én Check op true gezet is.

Beide oplossingen (die van mij en die van Johantrax) werken.

Tijs.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan