Чтобы ответить на ваш основной вопрос, функция break
позволит коду разрываться в середине цикла, например while
, for
, until
и т. Д. Он предоставляет программистам способ остановить свой код, если выполняется условие, требующее остановки цикла. break
только разрывает цикл, который в настоящее время находится в области видимости.
Однако на практике использование прерывания не рекомендуется, так как существуют другие структуры циклов, которые могут выполнить любую задачу, которую вы ищете, более безопасным и более понятным способом. Если вам нужно остановить цикл , пока в цикле, используйте , пока (или до, или что-то еще). Вставляйте разрывы в код только в том случае, если это абсолютно необходимо, что, если вы не запускаете ассемблерный код, будет очень небольшим числом вариантов использования.
~~~~~~~~~~~~~~~~
Что касается другого слона в комнате, C - это язык, с которым вы можете делать все, что угодно, и он идет только настолько, насколько вы готовы испачкать руки в отношении указателей и обработки памяти. Я весьма предлагаю ознакомиться с указателями, обработкой памяти, аргументами и общим дизайном программы, поскольку код, который вы изначально передали, был довольно мизерным. Мы все должны писать плохой код один раз в нашей жизни, чтобы стать лучшими программистами. Также ниже приведен код, который будет читать входные данные, переданные ему (в командной строке), и искать несколько повторяющихся символов этого переданного ввода.
int main( int argc, char *argv[] )
{
// Check to see if no arguments were passed to program.
// Remember, argv[0] is the program you are calling
if (argc < 2)
{
printf("You need to specify some input for this to work.\n");
return; // End program early
}
int i = 0; // Loop control
int count = 0; // Repetitive char count. After init, it will be set to 1
char check = *(argv[1] + i); // Store the first character to check
// argument's character not null and char sequence less than 7
while (*(argv[1] + i) != 0 && count < 7)
{
// The last character is the same as the current one
if (check == *(argv[1] + i))
{
count++; // Increment count.
}
else
{
count = 1; // Reset count and try again.
check = *(argv[1] + i); // Store a character to check
}
i++;
}
char* result = !(count < 7) ? "yes" : "no"; // Boolean for yes or no
printf("%s\n", result);
return 0;
}