Почему эта программа всегда выводит текст "future" из функции year ()?
В этом случае, при b + c, равном 56, переменная year должна быть меньше (b + c)> 0 && (b + c) <1000) и возвращать «roman», но вместо этого она возвращает «future» .. . </p>
Я получил это, чтобы успешно работать, если я добавлю это:
var period:String = (year(b,c));
и в моей функции организма заставьте условные чеки проверять период. Например
if (period == "future")
но я не понимаю, зачем мне это делать. Я возвращаю строку, почему я должен установить другую переменную? Там нет ошибок компилятора, так ясно его не синтаксический?
var a:String = "Tim";
var b:int = 50; //CHANGE TO ANY INT YOU WANT
var c:int = 6; //CHANGE TO ANY INT YOU WANT
var d:String = "Kyle";
var sum:int = b+c;
function friend(d:String, a:String):String
{
return d+" and "+a;
}
function year(b:int, c:int):String
{
if( (b+c) > 2000 )
return "future";
else if( (b+c)> 1000 && b+c< 2000)
return "colonial";
else if( (b+c) > 0 && (b+c) < 1000)
return "roman";
else if( (b+c) < 0)
return "medieval";
else
return "fail";
}
function intro(sum, friend):String
{
return "Once upon a time, in the year "+ b+c +", "+friend;
}
function body(year):String
{
if ("future")
return " saw a flying saucer and descided they wanted do be an alien.";
else if ("colonial")
return " just got off the the Mayflower and descided they wanted to eat some turkey.";
else if ("roman")
return " are taking a break after a fierce battle with the Romans.";
else if ("medieval")
return " saved the princess in shining armor after slaying the dragon.";
else if ("fail")
return " just got an F on their exam.";
else
return " just got an F on their test.";
}
trace (b+c);
trace(intro(sum, friend(d, a)) + body(year));