Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 22

Как вернутся к if если выпало else

24.12.2019, 15:05. Показов 6344. Ответов 34

Студворк — интернет-сервис помощи студентам
Существует метод возврата к условию "if" если оно не выполнено?
Пример

Java
1
2
3
4
5
 if (userAnswer.equals(10)){
               Выполняем нужный код
              } else if(userAnswer.equals("Отвали, я спать хочу"){
                тоже что-то делаем
              }
Так вот, как вернутся к выполнению нужного кода?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2019, 15:05
Ответы с готовыми решениями:

Как вернутся в опенер?
Есть функция которая открывает новое окно openWindow = open("up_img.php","text_img","width=600,height=430"); Как можно вернутся в...

Как вернутся к обратному?
Господа, дайте совет. Было у меня Х посетителей в день с яндекса потом я по своей глупости поставли ссылку на линкер (тогда еще этим...

Как вернутся обратно с PHP 5.5 до 5.3
Установил новый пых, перестал работать скрипт :( и обратно вернутся не знаю как... Debian 6

34
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
25.12.2019, 10:55
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Sindbad_M Посмотреть сообщение
Да. Для этого используют циклы "до" и "пока"
Либо ещё раз вызвать функцию с нужным кодом.
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
25.12.2019, 11:04
Цитата Сообщение от politoto Посмотреть сообщение
Либо ещё раз вызвать функцию с нужным кодом
А как? :-)
1
-34 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 87
25.12.2019, 11:20
Когда нужно вырыть яму глубиной 1 метр Вы не возьмёте лопату и не поработаете 15 минут, а сука закажете эскаватор и будете 3 дня ждать пока он приедет
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
25.12.2019, 11:22
Как-то так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub test01()
 
    answer = InputBox("3 или 4 ?")
    
    If answer = 3 Then
        MsgBox "Правильно"
    Else
        MsgBox "Повторите"
 
        test01 ' call test01()
 
    End If
    
End Sub
Либо нерекурсивно.
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
25.12.2019, 11:29
Sindbad_M,
Либо ещё раз вызвать функцию с нужным кодом
Цитата Сообщение от Sindbad_M Посмотреть сообщение
А как? :-)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.function.Predicate;
import java.util.function.Supplier;
 
public class LoopIf{
 
    public static Predicate<String> p = s -> s.equals("Do it!!!");
    public static Supplier<String> s = () -> "We are make something!";
 
    public static void main(String[] args){
        if(p.test("Do it")) 
            System.out.println(s.get());
        else {
            System.out.println("Something Before");
            if(p.test("Do it!!!"))
                System.out.println(s.get());
            System.out.println("Something After");
        }
    }
}
1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
25.12.2019, 11:32
Цитата Сообщение от Dimon408 Посмотреть сообщение
Когда нужно вырыть яму глубиной 1 метр Вы не возьмёте лопату и не поработаете 15 минут, а сука закажете эскаватор и будете 3 дня ждать пока он приедет
кому нужно то?
0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,507
25.12.2019, 12:22
Цитата Сообщение от Dimon408 Посмотреть сообщение
и не поработаете 15 минут
по себе, очевидно, судишь!
1
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
25.12.2019, 16:25
politoto, ViktorFX, разве что в качестве забавного прикола. Но это явно не то, что спрашивал ТС, так что никак не "либо".

Цитата Сообщение от politoto Посмотреть сообщение
Либо нерекурсивно.
Если не рекурсивно и без циклов, то как?
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
25.12.2019, 17:52
Цитата Сообщение от Sindbad_M Посмотреть сообщение
Но это явно не то, что спрашивал ТС,
Тут 2 варианта.
1) надо выполнить тот же код(ту же логику работы программы) - но это решение вам не понравилось.
2) важно чтобы компилятор именно вернулся к работе той же самой строки (это дополнительное условие по отношению к п.1)
Цитата Сообщение от Sindbad_M Посмотреть сообщение
Если не рекурсивно и без циклов, то как?
То есть вы хотите без рекурсий и каких либо циклов вернуть исполнение компилятором той же строки.. это наверное сложно
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
25.12.2019, 18:43
Если не прибегать к дописыванию программой собственного кода, нестандартным class loaderам и т.п.,
остаётся простая итерация.
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
25.12.2019, 19:04
Можно попытатся впихывать не функцию в условие (и при невыполнении условия, то есть в else, вызывать эту функцию),
а впихнуть само условие в функцию (чтобы выполнить условие возвращения к условию, извините за тавтологию)
Практической пользы мало, собственно как и данные условия "не просто решить задачу а с условиями.."
Сначала сама идея для примера - одно условие и два суплаера, потом развиваем - 2 условия (необязательно разные, к примеру первый раз условие не выполнилось, пошел по "дереву else" и пересмотрел его снова, ну и код по желанию можно юзать тот же что не выполнился в 1-й раз) и 3 решения(суплаера).
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
 
public class LoopIf{
    
    public static void main(String[] args){
        testIfElse();
    }
    public static void testIfElse() {
        String condition = "yes";
        Predicate<String> p = s -> s.equals(condition);
        Supplier<String> sup1 = () -> "We are inside IF";
        Supplier<String> sup2 = () -> "We are inside ELSE";
        Function<String,Function<Predicate<String>,Supplier<String>>> ifElse = 
            s -> pr -> pr.test(s)? sup1 : sup2;
        System.out.println(ifElse.apply("yes").apply(p).get());
        System.out.println(ifElse.apply("no").apply(p).get());
        System.out.println("------\n---- sup3 is actually sup2 in continuously --------------\n");
        Supplier<String> sup3 = () -> "We are inside ELSE and then IF";
        String superCondition = "notButYes";
        Predicate<String> notButYes = s -> s.equals(superCondition);
        Function<String,Function<Predicate<String>,Function<String,Function<Predicate<String>,Supplier<String>>>>> ifElseIf = 
            s1 -> p1 -> s2 -> p2 ->  p1.test(s1)? sup1 : p2.test(s2)? sup3 : sup2;
        String test1 = "yes";
        String test2 = "not";
        String test3 = "notButYes";
        System.out.println("sc test1 : "+ifElseIf.apply(test1).apply(p).apply(test1).apply(notButYes).get());  // sc - superCondition predicete
        System.out.println("c test1 : "+ifElseIf.apply(test1).apply(p).apply(test1).apply(p).get());           // c - condition predicate
        System.out.println("sc test2 : "+ifElseIf.apply(test2).apply(p).apply(test2).apply(notButYes).get());
        System.out.println("c test2 : "+ifElseIf.apply(test2).apply(p).apply(test2).apply(p).get());
        System.out.println("sc test3 : "+ifElseIf.apply(test3).apply(p).apply(test3).apply(notButYes).get());
        System.out.println("c test3 : "+ifElseIf.apply(test3).apply(p).apply(test3).apply(p).get());
        System.out.println("sc test2/test3 : "+ifElseIf.apply(test2).apply(p).apply(test3).apply(notButYes).get());
        System.out.println("c test2/test3 : "+ifElseIf.apply(test2).apply(p).apply(test3).apply(p).get());
        System.out.println("sc test3/test2 : "+ifElseIf.apply(test3).apply(p).apply(test2).apply(notButYes).get());
        System.out.println("c test3/test2 : "+ifElseIf.apply(test3).apply(p).apply(test2).apply(p).get());
    }
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
We are inside IF
We are inside ELSE
------
---- sup3 is actually sup2 in continuously --------------
 
sc test1 : We are inside IF
c test1 : We are inside IF
sc test2 : We are inside ELSE
c test2 : We are inside ELSE
sc test3 : We are inside ELSE and then IF
c test3 : We are inside ELSE
sc test2/test3 : We are inside ELSE and then IF
c test2/test3 : We are inside ELSE
sc test3/test2 : We are inside ELSE
c test3/test2 : We are inside ELSE
1
25.12.2019, 19:45

Не по теме:

Цитата Сообщение от ViktorFX Посмотреть сообщение
Java
1
2
Function<String,Function<Predicate<String>,Function<String,Function<Predicate<String>,Supplier<String>>>>> ifElseIf = 
 s1 -> p1 -> s2 -> p2 -> p1.test(s1)? sup1 : p2.test(s2)? sup3 : sup2;
выглядит оч страшно

0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
25.12.2019, 20:45
Цитата Сообщение от ViktorFX Посмотреть сообщение
То есть вы хотите без рекурсий и каких либо циклов вернуть
Я - не хочу.
ТС задал вполне понятный новичковый вопрос "как вернуться к началу блока if из ветки else?" Я дал ответ что для этого используют циклы до и пока. Вы же с politoto предложили вариант с вызовом функции. Ок. Я оценил программисткий прикол. Практической пользы для ТС этот путь не несет.
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
25.12.2019, 22:03
Интерес TK не только практический
Цитата Сообщение от RomanF Посмотреть сообщение
у меня чисто АКАДЕМИЧЕСКИЙ интерес, это возможно?
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
25.12.2019, 22:20
Цитата Сообщение от politoto Посмотреть сообщение
Интерес TK не только практический
Ок.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.12.2019, 22:20

Как вернутся в текстовое поле
Только начал заниматься PHP.Поставил для себя задачу написать калькулятор. Сделал html-ий файл с формой отдельно, php-ый код отдельно. Не...

помогите плиз, как вернутся в ЯШУ
Люди, очень прошу помочь, что можно сделать, вылетел сайт из Яши примерно 2 месяца назад, писал на сапорт, не отвечают. После Апдейта...

Как в php вернутся в предыдущую папку?
Доброе время суток, форумчане! Вопрос глупый, не спорю), но все же, как можно вернутся назад? В CSS, ../ а в php как? К примеру: файл...

Как вернутся на уже открытую страницу
Ребята подскажите плз. Ситуация след. Пользователь открывает страницу -&gt; идет проверка проходил ли он афторизацию, если нет -&gt;...

Как вернутся назад и дать длину массиву
public partial class Form2 : Form { public string klausimai; public int kiek=0; public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru