7 svar
127 visningar
daylightkapt är nöjd med hjälpen
daylightkapt 18
Postad: 29 okt 2020 19:20

Varför vill inte min loop förtsätta?!?

{    
            Console.Write("Skriv in temperatur för bastun i fahrenheit\n ");
            
            string inmatat = Console.ReadLine();
            double fahrenheit = double.Parse(inmatat);
            double celsius = 1.8 * fahrenheit - 92 ;
            
                        
            if (fahrenheit>=165 && fahrenheit<=169)
            
            {
                
                Console.WriteLine ("\nDu har val perfekt temperatur ");
            }
        
            
            else if (fahrenheit  <=165)
            
            {
                
                Console.WriteLine("\nDet är för kallt försök igen ");
                inmatat = Console.ReadLine();
                fahrenheit = Convert.ToInt32(inmatat);
                
                
            }
              
            else if (fahrenheit  >=169)
                
            
            {
                    
                Console.WriteLine("\nDet är för varmt försök igen");
                inmatat = Console.ReadLine();
                fahrenheit = Convert.ToInt32(inmatat);    
                
            }
        
           
            Console.WriteLine("\nTack för att du använder denna panel ");
            
            
            Console.ReadKey();
            
            
            
            
            
            
        }
    }
}

Yngve 37818 – Livehjälpare
Postad: 29 okt 2020 19:33 Redigerad: 29 okt 2020 19:37

Hej och välkommen till Pluggakuten!

Det är för att din kod inte har någon loop.

Du behöver en "while" eller "do while"- konstruktion för att skapa en loop.

Läs mer här.

daylightkapt 18
Postad: 29 okt 2020 20:30

Jag får inte till det så jag lägger till en INT så säger den ju att jag redan har en Fahrenheit.

daylightkapt 18
Postad: 29 okt 2020 20:40

 

Nu skriver den bara ut "Du har valt perfekt temperatur" Hela tiden

 

 

 

 

{    
            Console.Write("Skriv in temperatur för bastun i fahrenheit\n ");
            
            string inmatat = Console.ReadLine();
            int fahrenheit = 167;
            double celsius = 1.8 * fahrenheit - 92 ;
            
                
            
            do
            
            while     (fahrenheit == 167)
            
            {
                
                Console.WriteLine ("\nDu har val perfekt temperatur ");
                
            }
        
            
            while (fahrenheit  <=165);
            
            {
                
                Console.WriteLine("\nDet är för kallt försök igen ");
                inmatat = Console.ReadLine();
                fahrenheit = Convert.ToInt32(inmatat);
                
                
            }
            
              
            while (fahrenheit  >=169);
                
            
            {
                    
                Console.WriteLine("\nDet är för varmt försök igen");
                inmatat = Console.ReadLine();
                fahrenheit = Convert.ToInt32(inmatat);    
                
            }
            
        
        
           
            Console.WriteLine("\nTack för att du använder denna panel ");
            
            
            Console.ReadKey();
            
            
            
            
            
            
        }
    }

Laguna Online 28468
Postad: 29 okt 2020 20:44

Varför har du semikolon i slutet på while-raderna? 

daylightkapt 18
Postad: 29 okt 2020 20:56

annars säger den till att det förväntas på den platsen

Laguna Online 28468
Postad: 29 okt 2020 21:03

Den utför allt mellan villkoret och semikolonet, dvs. ingenting alls.

Om kompilatorn säger att ett semikolon förväntas så är någonting annat fel. 

Lindehaven 820 – Lärare
Postad: 30 okt 2020 09:07 Redigerad: 30 okt 2020 11:55

Det blir en oändlig loop p g a denna kod där värdet på fahrenheit inte ändras:

int fahrenheit = 167;

do {

        Console.WriteLine ("\nDu har val perfekt temperatur ");

} while (fahrenheit == 167) 

Föreslår att du återgår till den kod du visade i ditt ursprungliga inlägg. Sedan lägger du en do-while loop som innesluter den.

int fahrenheit = 0;

do {

        // Din ursprungliga kod

} while (fahrenheit < 165 || fahrenheit > 169);

Med andra ord ska koden repeteras om temperaturen är för låg eller för hög. 

Svara Avbryt
Close