If statement i en while loop Ada programmering
Hej, håller på med en uppgift där jag försöker sätta gränser för vilka flyttal jag får använda. Jag försöker sätta gränserna mellan 0.0 och 100.0 och testade att göra så här
loop
Put("Momsprocent: ");
Get(Fm);
if(Fm > 0.0) and(Fm = 0.0) and(Fm= 100) and(Fm < 100.0) then exit;
end if;
Put("Felaktigt värde!");
New_Line;
end loop;
Men det funkar inte och jag förstår inte riktigt varför. När jag lägger gränserna så här:
loop
Put("Momsprocent: ");
Get(Fm);
if(Fm > 0.0) and(Fm < 100.0) then exit;
end if;
Put("Felaktigt värde!");
New_Line;
end loop;
så kan jag skriva in alla tal mellan 0.0 och 100.0 men inte själva 0.0 och 100.0. Jag vet inte riktigt vad jag ska göra här.
if satsen testar om Fm samtidigt är >0 och =0 och =100 och <100
det lär ju aldrig hända. Finns det inte en operator >= (alltså större än eller lika med) i Ada?
Förslag (om det finns en not-operator) if not(Fm <0 or Fm >100) then exit
eller ännu hellre
if (Fm<0 or Fm>100) then put("Fel...
jag kan inte Ada så det är bäst att du sätter dit syntax-krafset själv så jag inte lurar dig
matsC skrev:if satsen testar om Fm samtidigt är >0 och =0 och =100 och <100
det lär ju aldrig hända. Finns det inte en operator >= (alltså större än eller lika med) i Ada?
Förslag (om det finns en not-operator) if not(Fm <0 or Fm >100) then exit
eller ännu hellre
if (Fm<0 or Fm>100) then put("Fel...
jag kan inte Ada så det är bäst att du sätter dit syntax-krafset själv så jag inte lurar dig
Jag insåg att jag va lite dum, löste det genom att sätta If(Fm>=0.0) and(Fm<=100.0)
Jag testade if(Fm=>0.0) and(Fm<=100.0) som inte fungerade, men tänkte inte på att ändra ordningen på symbolerna haha.