4 svar
681 visningar
DragonPeachBlossom är nöjd med hjälpen
DragonPeachBlossom 11 – Fd. Medlem
Postad: 11 okt 2020 17:29 Redigerad: 11 okt 2020 18:06

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 Online 28536
Postad: 11 okt 2020 18:44

Du ska inte ha semikolon efter if-testet. 

DragonPeachBlossom 11 – Fd. Medlem
Postad: 11 okt 2020 18:54

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

Laguna Online 28536
Postad: 11 okt 2020 19:45

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 504 – Fd. Medlem
Postad: 11 okt 2020 19:52

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