Avatar billede ircnoob Nybegynder
01. september 2006 - 12:35 Der er 14 kommentarer

While loop

Hejsa,
programmet læser hvad brugeren skriver i consollen og søger efter navnet på om båden findes og printer info ud om den..
Men vil gerne have den til at loope eller noget indtil at man finder en båd, altså hvis man skriver "hejsa" og der ingen båd der hedder det, skulle den gerne prøve igen..

Den while der er der er i tilfælde af at der er flere både med samme navn..

string s = Console.ReadLine();
foreach (Sailboat element in sailboats)
{
  while (element.name.Equals(s))
        {
            Console.WriteLine("Båden " + element.Name + "                                        hullspeed er " + element.calculateHullSpeed());                          break;
                    }
                 
                }
Avatar billede nielle Nybegynder
01. september 2006 - 12:42 #1
bool boatFound = false;
while (!boatFound)
{
    string s = Console.ReadLine();
    foreach (Sailboat element in sailboats)
    {
        if (element.name.Equals(s))
        {
            Console.WriteLine("Båden " + element.Name + "                                        hullspeed er " + element.calculateHullSpeed());
            boatFound = true;
            break;
        }
    }
}
Avatar billede nielle Nybegynder
01. september 2006 - 12:43 #2
Din while fungerede i øvrigt ikke som du beskrivere det. Din break afsluttede den efter første hit.
Avatar billede ircnoob Nybegynder
01. september 2006 - 12:51 #3
Virker da fint her.. :D
Avatar billede ircnoob Nybegynder
01. september 2006 - 12:52 #4
Det gør din ide dog desværre ikke... fatter ikke hvorfor dog..
Avatar billede nielle Nybegynder
01. september 2006 - 12:54 #5
Du har en while-løkke inden i en foreach-løkke. Din break ville kun breake while-løkken, og foreach-løkken vil køre videre.
Avatar billede nielle Nybegynder
01. september 2006 - 12:57 #6
Er det rigtigt læst at din Sailboat-klasse både har et felt som hedder "name" og et som hedder "Name"?
Avatar billede ircnoob Nybegynder
01. september 2006 - 12:58 #7
præcis
Avatar billede ircnoob Nybegynder
01. september 2006 - 12:59 #8
Ja hehe men altså alt det der fungerer som det skal ..
Avatar billede nielle Nybegynder
01. september 2006 - 12:59 #9
Må man spørge om hvorfor? To felter som ligger så tæt i deres navn-givning er en udemærket måde at invitere til problemer.
Avatar billede nielle Nybegynder
01. september 2006 - 13:02 #10
bool boatFound = false;
            while (!boatFound)
            {
                string s = Console.ReadLine();
                foreach (Sailboat element in sailboats)
                {
                    while (element.name.Equals(s))
                    {
                        Console.WriteLine("Båden " + element.Name + "                                        hullspeed er " + element.calculateHullSpeed());
                        boatFound = true;
                        break;
                    }
                }
            }
Avatar billede siz23 Nybegynder
04. september 2006 - 14:45 #11
en "while" løkker der ALTID ender med en break;
brug en "if", og ingen break;

og er din forach løkke der sørger for at skrive samtlige både ud, og ikke din while løkke.
Avatar billede nielle Nybegynder
04. september 2006 - 19:49 #12
siz23> Du har fuldstændig ret, jeg må have været lidt træt.

Uanset hvordan jeg drejer den, så ender jeg tilbage ved at den rette kode må vare den fra 01/09-2006 12:42:59. Imidlertid fortæller ircnoob at den ikke fungere.

ircnoob> Hvad gør koden da galt, siden at du ikke mener at den gør jobbet korrekt?

siz23> Du er velkommen til at komme med dit eget bud. :^)
Avatar billede siz23 Nybegynder
07. september 2006 - 10:49 #13
nielle> er som sådan ikke noget galt med din kode, var bare i forbindelse med god kodning standard etc. :)
mit bud ville ligge så tæt på dit, at jeg ikke kunne sige at det var mit bud :D
Avatar billede nielle Nybegynder
11. september 2006 - 20:54 #14
ircnoob, har du fået det til at virke?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester