Как вернуться в начало функции с
Перейти к содержимому

Как вернуться в начало функции с

  • автор:

Как вернуться в функцию «main()» после выполнения какой-либо функции?

Я написал программу для вычисления дискриминанта, но помимо неё я собираюсь дать программе ещё несколько вариантов работы с числами, но сделать это так, чтобы консольное окно не закрывалось после выполнения одной из операций с числами. Тоби-ж, зациклить программу, пока пользователь сам её не закроет. Вот код программы(если нужно) — https://pastebin.com/xQf3g1vC

Функцию «sqr()» я написал в виде заголовочного файла, ибо такой метод выглядит более читабельным, чем «x*x», ну как по мне.

  • Вопрос задан более двух лет назад
  • 634 просмотра

Комментировать

Решения вопроса 1

Max @maximsemin23

#include #include #include #include "int_sqr.h" using namespace std; int a, b, c, d; double x1, x2; int discriminant() < setlocale(LC_ALL, "Russian"); cout > a; cout > b; cout > c; d = sqr(b) - 4 * a * c; cout else < x1 = (-b + sqrt(d)) / (2 * a); x2 = (-b - sqrt(d)) / (2 * a); cout return 0; > void mainloop() < string parm; cout > parm; if (parm == "D") < cout > int main()

Ответ написан более двух лет назад

Комментировать

Нравится 1 Комментировать

Ответы на вопрос 1

vanyamba-electronics @vanyamba-electronics

#include #include using namespace std; inline void error(const string& msg) < throw msg.c_str(); >inline void error(const char* msg = nullptr) < throw msg; >void func2() < error("Just error."); >void func() < func2(); error(); // Just return to main() >int main() < while (true) < try < func(); >catch (const char* msg) < if (msg != nullptr) cerr > return 0; >

Ответ написан более двух лет назад

Комментировать

Нравится Комментировать

Ваш ответ на вопрос

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

cpp

  • C++
  • +1 ещё

В чем ошибка кода?

  • 1 подписчик
  • 11 часов назад
  • 101 просмотр

Как вернуться в начало цикла java

Вернуться в начало цикла можно, самостоятельно поменяв значение счетчика цикла.

Необходимо быть внимательным и четко прописать условия выхода из цикла, чтобы не попасть в бесконечный цикл.

Ниже приведен метод пузырьковой сортировки в рамках одного цикла с изменением счетчика для возврата в начало цикла :

import java.util.Arrays; public class App  public static void main(String[] args)  int[] arr = 5, 2, 4, 1, 3>; bubbleSort(arr); System.out.println(Arrays.toString(arr)); // => [1, 2, 3, 4, 5] > public static void bubbleSort(int[] arr)  boolean wasSwap = false; for(int i = 0; i  arr.length - 1; i++)  if(arr[i] > arr[i + 1])  // меняем местами элементы int temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; wasSwap = true; > if(i == arr.length - 2)  // если дошли до конца массива if(wasSwap)  // и были изменения данных i = -1; // то меняем счетчик для возврата в начало цикла wasSwap = false; > else  // если изменений не было return; // то сортировка закончена > > > > > 

Как вернуться в начало цикла?

Откуда же нам знать «как правильно»? Это только вам известно, какие у вас должны быть значения (и где) в начале цикла. На эти ваши магические значения ничего не говорят.

5 окт 2019 в 18:16

Прошу прощения, я не ясно выразился. Вопрос такой — если я пишу continue меня перебросит в начало цикла while?

5 окт 2019 в 18:20

@Просто Кодер: continue перебрасывает вас на конец тела цикла, а не на начало. В цикле while это действительно эквивалентно переходу на начало цикла. В остальных видах циклов — в общем случае не эквивалентно.

9 окт 2019 в 17:09

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Можете упростить до:

while (l1 != r) < if (k >n_d[l1]) < k = k - n_d[l1]; l1 += 1; >else < k = k_old; count -= 1; n_d[count2] = 1; count2 += 1; >> cout  

Учитывая количество участвующих обьектов, подозреваю, что весь код нуждается пересмотру

Отслеживать
ответ дан 5 окт 2019 в 18:21
AR Hovsepyan AR Hovsepyan
15.9k 3 3 золотых знака 13 13 серебряных знаков 30 30 бронзовых знаков

Странно, если вы упростили мой код, не меняя его. Я его вставил вместо своего и все заработало. Хмм, пойду разбираться в упрощение этого куска, спасибо большое)

5 окт 2019 в 18:25

@Просто Кодер, это вам кажется, что ничего не изменилось. Я просто выразил то, что вы хотели, а вы своим кодом даже компилятору можете заставить запутаться(в качестве шутки)

5 окт 2019 в 18:29

  • c++
  • for
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как вернуться в начало функции с

Добрый день!
Есть 2 цикла. Когда я зайду во второй, при определенных условиях мне нужно вернуться в начало первого цикла. то есть иерархия такая, цикл в цикле.

ЦИКЛ 1: Для каждого Стр из Массив Цикл
. . .
ЦИКЛ 2: Для каждого Запись из мНаборЗаписейРегистра Цикл
//вот здесь у меня условие и если оно ложь, я пишу "Продолжить;", но меня возвращает на начало второго цикла. А мне надо, чтобы на начало 1 цикла, чтобы тот код, который ниже, больше не выполнялся для Стр! Чтобы пошла следующая Стр в цикле1
КонецЦикла;

замени Продолжить на Прервать

не помогло. Идет дальше.
Сейчас структуру ниже приведу как у меня:

ЦИКЛ 1: Для каждого Стр из Массив Цикл
. . .
Если . Тогда
ЦИКЛ 2: Для каждого Запись из мНаборЗаписейРегистра Цикл
Если . Тогда
.
Иначе
Прервать;
конецЕсли;
КонецЦикла;
КОнецЕсли;
КонецЦикла;

Где прервать, выходит из второго цикла и идет ниже..Не возвращает наверх

(4) то есть из второго цикла выходит, а первый продолжает, а мне не нужно его продолжать, надо чтобы заново шел

Перейти (Goto)
Синтаксис:
Перейти ~;
Описание:
Безусловная передача управления на другой оператор программы. Передает управление от одного оператора к другому. Область действия оператора ограничивается программным модулем, процедурой или функцией; он не может передать управление за пределы программного модуля, процедуры или функции.
Метка – это идентификатор, "помечающий" определенный оператор, на который надо передать управление в ходе выполнения программы. Метка отделяется от этого оператора двоеточием и предваряется символом "~".
Пример:
Пока Истина Цикл
Для Каждого Элемент Из МассивЭлементов Цикл
Если ВыполнениеУсловия(Элемент) Тогда
Перейти ~ВыходИзДвойногоЦикла;
КонецЕсли;
.
КонецЦикла;
КонецЦикла;
~ВыходИзДвойногоЦикла:
// продолжение вычислений

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *