Изваждане и while цикъл с JS

lam3r4370

Registered
Искам от едно число да извадя числото 26 докато числото не стане между 0 и 26.
Пример:
45 - 26 = 19
64 - 26 = 38 - 26 = 12

Написах следния код:
var chislo = 45;
do {
chislo = chislo - 26;
}
while(chislo >= 0 && chislo <= 26);
alert(chislo);
И ми изкарва -7 ,а аз съм задал да е между 0 и 26...
 
Незнам защо ползваш do->while.
Знаеш ли каква е разликата между:
do {
} while ( )
и само
В първия случай, когато имаме do->while, първо се изпълнява оиперацията , после се проверява условието,КОето значи, че цикъла ще се изпълни най-малко 1 път.
Само при while , първо се проверя условието, после се извършва операцията, което знаеи че цикъла може да не се изпълни НИТО един път.
Значи грешката ти е твоята логика.
Цикъла се извършва два пъти, понеже 45-26=19==true
После още веднъж(19 е между 0 и 26) и 19-26=-7и Ето ти крайният резултат
 
var chislo = 45;

while(chislo >= 0 && chislo <= 26) {
chislo = chislo - 26;

alert(chislo);
}
Еми помисли малко де!
Имаш променлива равна на 45, а в условието искаш тя да е между 0 и 26 :idea:
Как да стане, за да се извърши операцията?????
 
emagi каза:
var chislo = 45;

while(chislo >= 0 && chislo <= 26) {
chislo = chislo - 26;

alert(chislo);
}
Еми помисли малко де!
Имаш променлива равна на 45, а в условието искаш тя да е между 0 и 26 :idea:
Как да стане, за да се извърши операцията?????
Ами... :)
while - докато
докато(chislo >= 0 && chislo <= 26) {
Докато не стане изпълнява операцията.
:idea:
}
 
Така ли?
var chislo = 45;

while(chislo >= 0 && chislo <= 26) {
chislo = chislo - 26;

alert(chislo);
}
не означава ли, докато променливата chislo е в тези граници chislo >= 0 && chislo <= 26, то да се изпълнява условието???
Числото е равно на 45, следователно не изпълнява условието
 
var chislo = 64;
while((chislo-26) >= 0 && (chislo-26) >=26 ) {
chislo -= 26; //su6toto kato chislo = chislo - 26
alert(chislo);
}
alert("posledno:"+chislo);
Може да рабори без това в червеното
Тоя знак съм ти го уголемил да видиш каде грешиш
Едит: даже не работи правилно със това в червеното...
 
@F1r3Fl3x ми помогна по скайп.
Решението е:
var chislo = 64;
while(chislo <= 0 || chislo>=26){
chislo = chislo - 26;

}
alert(chislo);
,но все пак не проумявам защо OR ,а не AND?!
Може и само с chislo <= 0 ,но 28 пак е по-голямо от нула и аз затова сложих AND
 
Значи по това което си написал виждам че числото трябва да е по малко или равно на 0 или да е по голямо или равно на 26. :shock: :shock:
 
marian каза:
Значи по това което си написал виждам че числото трябва да е по малко или равно на 0 или да е по голямо или равно на 26. :shock: :shock:
И аз се чудя как става ,ама - става.
 
var chislo = 64;
var prebroqvaniq = 0;
while(chislo>=26){
chislo = chislo - 26;
prebroqvaniq++;
}
alert(chislo);
alert(prebroqvaniq);
Слагаш променлива която е равна на 0 над цикъла а в цикъла я увеличаваш с едно
 

Back
Горе