@nikitasalnikov
Новичок

Какая логика между разными операторами?

int x = 0;
string poem = "";

while (x<4) 
{
poem = poem + "a";

if (x<1){
poem = poem + "";
}
poem = poem +"n";
if (x>1) {
poem = poem + " oyster";
x= x+2;
}
if (x==1){
poem = poem + "noys";
}
if (x<1){
poem = poem + "oise";
}
x = x+1;
}
output.Text = poem;

Код выводит сообщение a noise annoys an oyster.
Как понять, каким образом эти X-сы относятся к эти "poem"? Какая между ними связь? Как решать такие задачи?

P. S. сам вопрос по книге
5e9ebbe181e53877445404.jpeg

ответ по книге
5e9ebc1349240631454587.jpeg
  • Вопрос задан
  • 243 просмотра
Пригласить эксперта
Ответы на вопрос 1
@kttotto
все, что .NET
Никита Сальников,
есть числа то и ответ должен быть числа

Неверно. Условием может быть число, строка, или и то и другое (объект), а в зависимости от выполнения условия операция может производится так же над чем угодно (числом, строкой и т.д.). Грубо говоря "если один, то допишу в конец строки 'a', если два, то допишу в конец строки 'b' ". Может наоборот: "если 'one' прибавлю к результату 2, если 'two', прибавлю 4" и т.д.

Всю эту задачу можно было бы переписать как то так
var x = 0;
var result = "";
while (x < 30) {
  if(x == 0 || x == 8 || x == 15) {
    result += "a";
  }
  if(x == 1 || x == 7) {
    result += " ";
  }
  if(x == 2 || x == 9 || x == 10 || x == 16) {
    result += "n";
  }
  
  ... // и т.д.
  x++;
}

где x просто порядковый номер буквы в строке. Смысл тот же, найти зависимость расположения частей строки в целой строке.
Таких зависимостей, в данном случае, можно найти сколь угодно. Автор книги предложил свой вариант, просто запутал условия, чтобы интересней было искать ответ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы