Вложенный цикл if и for

У меня проблема с циклом if и for. Первая закрывающая скобка (}) закрывает первый оператор if. Я хотел закрыть скобу, с которой она выровнена.

startnum = int.Parse(startnumbers);

endnum = int.Parse(endnumbers);

string route = "1. ";

if (startletters == endletters && startnum > endnum)
{
   for (int count = 0; startnum < endnum; startnum++)
   {
      if (startname != endname)
      {
         count++;
         route += ("Board the {0} line, go {1} stops toward {2}",startletters,count, endname );
      }
   }
}

Это скриншот

Нет, первая закрывающая скобка (}) закрывает последний оператор if (if (startname != endname)). Как вы думаете, почему он закрывает первый оператор if (if (startletters == endletters && startnum > endnum))?

vasily.sib 25.12.2018 04:26

привет, поэтому, когда я нажимаю на первую закрывающую скобку, она выделяет как эту закрывающую скобку, так и первую скобку if. Открывающая скобка для цикла for и следующий оператор if не закрываются.

Wolfeatspotatoes 25.12.2018 04:29

Кто такой "Это"? Visual Studio? Мой Notepad ++ и Visual Studio правильно их выделяют. Компилирует ли "Это" ваш код?

vasily.sib 25.12.2018 04:35

У вас есть 3 открытия и 3 закрытия - как можно что-то не закрыть? И они выровнены по вертикали, что позволит легко сопоставить их в вашей голове.

Ňɏssa Pøngjǣrdenlarp 25.12.2018 04:37

Я использую Visual Studio 2015, и я просто попытался скопировать этот код в новый проект, и он показывает ту же ошибку.

Wolfeatspotatoes 25.12.2018 04:43

Я использую блокнот ++ для проверки, и он идеально выровнен, но когда я использую Visual Studio 2015, это ошибка.

Wolfeatspotatoes 25.12.2018 04:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
82
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

У вас синтаксическая ошибка в этой строке:

route += ("Board the {0} line, go {1} stops toward {2}",startletters,count, endname );

У вас есть параметры для string.Format, но вы на самом деле не вызываете его. Вместо этого вы хотите это:

route += string.Format("Board the {0} line, go {1} stops toward {2}", startletters, count, endnum);

Из-за синтаксической ошибки компилятор не может сопоставить фигурные скобки, как вы ожидали.

Спасибо, мужик, это исправлено. Я понятия не имею, что делает строковый формат, так как я новичок в программировании, но спасибо вам, чувак.

Wolfeatspotatoes 25.12.2018 05:15

Это очень полезно. Возможно, вам захочется держать под рукой ссылка.

madreflection 25.12.2018 05:24
Ответ принят как подходящий

Следующие ошибки, которые вы собираетесь совершить:

Как это решить?

Следующие способы решить эту проблему:

Ваш код [исправлено]:

startnum = int.Parse(startnumbers);

endnum = int.Parse(endnumbers);

string route = "1.";

if (startletters == endletters && startnum > endnum)
{
   for (int count = 0; startnum < endnum; startnum++)
   {
      if (startname != endname)
      {
         count++;
         string tempRoute = string.Format("Board the {0} line, go {1} stops toward {2}",startletters,count, endname);
         route = route + " " + tempRoute;
      }
   }
}

Другие вопросы по теме