Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2018, 06:10   #1
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию Не работает условие if()

Здравствуйте!
На С++ таких проблем не было никогда. Здесь - просто не вероятно!
В режиме отладки наблюдаю, как строка для условия продолжения цикла содержит символ продолжающий цикл, более того содержимое выводится на консоль (!), а цикл не продолжается!
Как так?
Код:
  while (true)
        {
            System.out.print("Введите строку: ");
            str2 = in.nextLine();
            String[] words = str2.split("[ ]{1,}");
            String result = words[0];
            result += " ";
            int i;
            for (i = 1; i < words.length - 1; ++i)
                result += words[i] + " ";
            if (i < words.length)
                result += words[i];
            String[] words2 = result.split(" ");
            StringBuilder builder = new StringBuilder();
            for (String s : words2) {
                if (!(isVowel(s.charAt(0)) && s.length() == charCount) && !(isVowel(s.charAt(0)) && (s.length() == 6) && ((s.charAt(5) == '.') || (s.charAt(5) == ',')))) {
                    builder.append(s).append(" ");//Добавляет слово не подходящее под условие в строку
                }
            }
            String rezult2 = builder.toString().trim();
            System.out.println(rezult2);
            System.out.println("Если хотите повторить - введите 1. Если нет - любые символы.");
            str3 = in.nextLine();
            System.out.println(str3);
            if(str3!="1")
            {
                break;
            }
        }
Это уже вариант с бесконечным циклом. Самый первый вариант был цикл do c условием while(str3=="1");
Помогите пожалуйста понять происходящее.
KAMLS вне форума Ответить с цитированием
Старый 17.10.2018, 08:02   #2
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Сделал так.
Код:
 while (!str3.equals("1"))
        {
            System.out.print("Введите строку: ");
            str2 = in.nextLine();
            String[] words = str2.split("[ ]{1,}");
            String result = words[0];
            result += " ";
            int i;
            for (i = 1; i < words.length - 1; ++i)
                result += words[i] + " ";
            if (i < words.length)
                result += words[i];
            String[] words2 = result.split(" ");
            StringBuilder builder = new StringBuilder();
            for (String s : words2) {
                if (!(isVowel(s.charAt(0)) && s.length() == charCount) && !(isVowel(s.charAt(0)) && (s.length() == 6) && ((s.charAt(5) == '.') || (s.charAt(5) == ',')))) {
                    builder.append(s).append(" ");//Добавляет слово не подходящее под условие в строку
                }
            }
            String rezult2 = builder.toString().trim();
            System.out.println(rezult2);
            System.out.println("Если хотите повторить - введите любые символы или Enter. Если нет - введите 1.");
            str3 = in.nextLine();
        }
KAMLS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условие в PHP - Не работает условие: не выводит сообщение. Ave_Ave_Ave PHP 13 17.06.2016 12:20
Условие не работает Sony_boy Общие вопросы Delphi 2 04.10.2015 08:02
Не работает условие ilyxaaa Общие вопросы Delphi 10 22.09.2014 11:40
Не работает условие!!! VintProg Общие вопросы C/C++ 5 12.08.2011 04:40
[запрос к Бд] не работает условие nuevegramodelamor PHP 2 26.04.2011 14:17