У меня проблема с циклом 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. Открывающая скобка для цикла for и следующий оператор if не закрываются.
Кто такой "Это"? Visual Studio? Мой Notepad ++ и Visual Studio правильно их выделяют. Компилирует ли "Это" ваш код?
У вас есть 3 открытия и 3 закрытия - как можно что-то не закрыть? И они выровнены по вертикали, что позволит легко сопоставить их в вашей голове.
Я использую Visual Studio 2015, и я просто попытался скопировать этот код в новый проект, и он показывает ту же ошибку.
Я использую блокнот ++ для проверки, и он идеально выровнен, но когда я использую Visual Studio 2015, это ошибка.





У вас синтаксическая ошибка в этой строке:
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);
Из-за синтаксической ошибки компилятор не может сопоставить фигурные скобки, как вы ожидали.
Спасибо, мужик, это исправлено. Я понятия не имею, что делает строковый формат, так как я новичок в программировании, но спасибо вам, чувак.
Это очень полезно. Возможно, вам захочется держать под рукой ссылка.
Следующие ошибки, которые вы собираетесь совершить:
Как это решить?
Следующие способы решить эту проблему:

Ваш код [исправлено]:
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;
}
}
}
Нет, первая закрывающая скобка (}) закрывает последний оператор
if(if (startname != endname)). Как вы думаете, почему он закрывает первый оператор if (if (startletters == endletters && startnum > endnum))?