4 svar
50 visningar
DragonPeachBlossom är nöjd med hjälpen!
DragonPeachBlossom 31
Postad: 11 okt 2020 Redigerad: 11 okt 2020

Programmering 1 Hemligt tal ,Satserna (if, if else, while)

Precis börjat med programmering 1. Helt nybörjare. Uppgiften som jag ska göra går ut på att ma ska skapa ett enkelt program där användaren skall gissa en siffra  från 1-100 som programmet har slumpat fram.

Men när jag kommer till satserna (if, if else, while)  vill inte programmet funka. Detta är min kod. Fattar inte vad som är problemet. Har jag missat en parantes någonstans?

 

namespace Slumptal
{
    class Program
    {
        public static void Main(string[] args)
        {
            
            //Describe to the user what we are doing. Let user chose the nuber on their own. 
            Console.WriteLine("Hello user. Now we will play a game. Computer VS You.You are going to chose a number. Then the computer will give you a random number.If you guess what the number the computer has chosen.You win the game. But its a very rare possibility");
            Console.WriteLine("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------");
            Console.WriteLine("\nPlease chose the number you desire between 1 and 100. While you are chosing your number the computer is choosing a random number");
            int numberofchoice = int.Parse(Console.ReadLine());
            Console.WriteLine ("\nYou chose the number" + " " + numberofchoice);
            

            //The random class calculator
            Random random = new Random();
            
            
            //Comparing the two numbers "Random" and "numberofchoice"
            
            
            while (numberofchoice = random.Next(101));
            {                
            if(numberofchoice > random.Next(101));
            {
            Console.WriteLine("\nThe random had a lower number. Chose a new number");
            int repeathighernum = int.Parse(Console.ReadLine());
            Console.WriteLine ("\nYou chose" + " " + repeathighernum);
            }
            
            
            else if(numberofchoice < random.Next(101)); 
            {
            Console.WriteLine("\nThe random had a highter number. Chose a new number");
            int repeatlowernum = int.Parse(Console.ReadLine());
            Console.WriteLine ("\nYou chose" + " " + repeatlowernum);
            }
            
            if(numberofchoice == Random.Next(101)); 
            {
            Console.WriteLine ("You chose the right number");
            }
            
            
         
            Console.ReadKey();
        }
    }
}

Det visar rött där under. Fattar inte vad som är fel. 

Tack i förhand om du hjälper mig. 


                   
    

Laguna 10971
Postad: 11 okt 2020

Du ska inte ha semikolon efter if-testet. 

DragonPeachBlossom 31
Postad: 11 okt 2020

Hur många semikolon behöver jag ta bort? Har jag satt för många?

Laguna 10971
Postad: 11 okt 2020

Efter if-testet (alltså ordet if samt villkoret i parenteser) kommer en sats som ska utföras om testet är sant. Det kan vara en enkel (liten, vanlig, vad heter det) sats som i så fall avslutas med semikolon som vanligt, eller ett block som avgränsas med { } och som inte avslutas med semikolon.

Om man får ha ingenting mellan testet och semikolon i C# vet jag inte, men man får inte ha först if med semikolon och sedan ett block och sedan else.

Aerius 444
Postad: 11 okt 2020

I while ( numberofchoice = random.Next(101) ) blir det fel, ska vara == för jämförelse. Det ska nog inte vara random.Next(101) i testet heller. Gissar att den testar mot olika tal hela tiden. Istället för int.Pars testa Convert.ToInt32(string)

Svara Avbryt
Close