Do while probleem

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Jicker
  • Registratie: Juni 2006
  • Laatst online: 21-07 18:35
Mijn vraag

Ik ben net bezig om c# een beetje te begrijpen.
Nu had ik een oefening die als volgt gaat en werkt:
namespace Herhalingen.MetVoorwaarde
{
namespace Voorwaardes
{
using System;
class Program
{
static void Main()
{

int jaar = 1990;
do
{
Console.WriteLine(jaar);
jaar = jaar + 1;
}
while (jaar <= 2000);
Console.ReadKey();
}
}
}
}

Netjes de 10 jaren onder elkaar.
Een vergelijkbare oefening, maar dan met het - teken werkt niet. Hoe kan dit??

namespace Oefeningen.TwintigTemTien
{
using System;
class Program
{
static void Main()
{
int getal = 20;
do
{
Console.WriteLine(getal);
getal = (getal - 2);
}
while (getal = 10);
Console.ReadKey();

}
}
}

Hier wordt alleen het 1e getal getoond??

Alle reacties


Acties:
  • +3 Henk 'm!

  • Microkid
  • Registratie: Augustus 2000
  • Nu online

Microkid

Frontpage Admin / Moderator PW/VA

Smile

Je maakt een fout in je while regel. Je zegt feitelijk "zolang het getal 10 is" maar dat klopt niet. De eerste keer is het getal 20, dan trek je er 2 af, dus 18. Aangezien 18 <> 10, eindigt de lus meteen. Ik ga er van uit dat je bedoelt "while (getal >= 10)" ofzo?

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
namespace Oefeningen.TwintigTemTien
{
using System;
class Program
{
static void Main()
{
int getal = 20;
do
{
Console.WriteLine(getal);
getal = (getal - 2);
}
while (getal >= 10);
Console.ReadKey();

}
}
}

[ Voor 39% gewijzigd door Microkid op 23-02-2020 13:30 ]

4800Wp zonnestroom met Enphase
Life's a waste of time. Time's a waste of life. Get wasted all the time and you'll have the time of your life.


Acties:
  • 0 Henk 'm!

  • Jicker
  • Registratie: Juni 2006
  • Laatst online: 21-07 18:35
Bedankt, ik zag het later ook.

Acties:
  • +4 Henk 'm!

  • Rowwan
  • Registratie: November 2000
  • Laatst online: 16:34
De fout zit inderdaad in die regel, maar niet om de hierboven genoemde reden. Dan zou er getal==10 moeten staan. Je doet op deze regel een assignment naar 10.

Ik heb het nog even zelf geprobeerd omdat ik had verwacht dat hij eigenlijk oneindig door zou gaan (omdat je assignment altijd zou evalueren naar true, maar bij mij compileert het niet eens op die regel: Cannot implicitly convert type 'int' to 'bool'

[ Voor 46% gewijzigd door Rowwan op 24-02-2020 07:33 ]