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

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

24.12.2019, 15:05. Показов 6186. Ответов 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,505
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
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru