for-loop villkor och length c#
Hej! Jag håller på med uppgiften lottobollar i programmering 1 och har ett par saker jag inte förstår jag gärna skulle vilja ha förklarat för mig. Jag har skrivit koden på E nivå och jobbar nu med delarna på C nivå.
1. I uppgiften på C nivå vill dom att man förutom i++ ska använda i-- i villkoren i for-loopen. Alltså så att om användaren skriver in ett giltigt tal ökar i med 1 och om svaret inte är giltigt ska den minska med 1. Men jag har inte hittat något exempel med hur man kan ha två villkor i villkoren i for-loopen. Eller har jag missförstått vad dom menar?
2. Efter att ha läst många många trådar om denna uppgift ser jag att många använder length i deras for-loop. Varken vår studieguide eller läroboken förklarar length på ett sätt så att jag förstår och jag har därför inte lagt in den i min kod eftersom jag inte vet hur den skulle påverka resten av koden. Och tyvärr har jag inte hittat något på internet som jag förstår, det känns som att alla sidor där length är med skriver de bara 1-2 meningar men inte ordentligt förklarar vad length har för funktion och hur man praktiskt använder den?
Detta är uppgiften på C-nivå:
Ni ska nu kontrollera så att användaren bara skriver in ett tal mellan 1 och 25. Detta lösas enklast genom att man styr inmatning till respektive position i vektorn med en for-loop. I for-loopen finns en variabel (förändring, exempelvis i) som kontrollerar vilken position man för närvarande ”pekar på” i vektorn. Om talet som användaren skriver in är under 1 eller över 25 kan man minska värdet i variabeln (i) som styr positionen med ett (1) enligt figuren nedan. Då ”backar” vi ett steg i vektorn. Alltså – för varje varv som for-loopen itererar så kommer värdet på variabeln som styr förändring att öka med ett (1). Men om vi skriver in ett ”olämpligt” värde så kommer värdet att minska med ett (1) i koden inuti loopen. Alternativet är att ni sparar det inmatade talet i en temporär variabel och lagrar det i vektorn om det uppnår kraven (det vill säga är mellan ett och tjugofem)
Detta är min kod hittills:
namespace Lottobollar
{
class Program
{
static void Main(string[] args)
{
int[] minvektor; //Hakparanteserna efter int visar att det ska vara en vektor.
minvektor = new int[10]; //Vektorn har 10 positioner, det syns i hakparanteserna efter new.
Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 26); //slumpar ett tal mellan 1 och 25
Console.WriteLine("Välkommen till spelet Lottobollar! :)");
Console.WriteLine("Du har 10 försök på dig att gissa rätt nummer på lottobollen, Lycka till!");
for (int i = 0; i < 10; i++) //i står för index. loopen håller på medans index är mindre än 10 (0-9). för varje loop/varv adderas index med 1.
{
try
{
Console.WriteLine("Vänligen skriv in ett heltal mellan 1-25: ");
minvektor[i] = Convert.ToInt32(Console.ReadLine()); //läser in användarens svar, konverterar det till int, och informationen sparas i vektorns index.
}
catch
{
Console.WriteLine("Du måste skriva ditt svar med siffror. Endast helttal är tillåtet.");
}
if (minvektor[i] == slump_tal)
{
Console.WriteLine("Grattis! Du gissade rätt, numret på lottobollen är " + slump_tal);
}
else if (minvektor[i] != slump_tal)
{
Console.WriteLine("Tyvärr har du slut på försök! Numret på lottobollen var " + slump_tal);
}
}
}
}
}