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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2018, 20:10   #1
AnnLikki
 
Регистрация: 19.12.2018
Сообщений: 3
Восклицание Java проблема в алгоритме

Java Проблема в цикле помогите
//Программа должна выполняться в консоли так: Она меня спрашивает, поменять или нет, и в зависимости от моего ответа прибавлять к одной из переменных 1. Но вместо этого она зацикливается на первом цикле ИФ и переменные не меняет
import java.util.Scanner;
public class prog
{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String vvod;
subject nothing = new subject();
subject root = new subject();
subject oleg = new subject();
nothing.name = "Ничего";
root.name = "Рут";
oleg.name = "Олежа";
boolean i = true;
while(i==true){
System.out.println(nothing.love+not hing.name);
System.out.println(root.love+root.n ame);
System.out.println(oleg.love+oleg.n ame);
if (nothing.love == root.love){
System.out.println(nothing.name + " поменять на " + root.name+"?");
vvod = scan.nextLine();
if(vvod=="Да"){
root.love++;
System.out.println(nothing.love+not hing.name);
System.out.println(root.love+root.n ame);
System.out.println(oleg.love+oleg.n ame);
}
else if(vvod=="Нет"){
nothing.love++;
System.out.println(nothing.love+not hing.name);
System.out.println(root.love+root.n ame);
System.out.println(oleg.love+oleg.n ame);
}
}
else if (nothing.love == oleg.love){
System.out.println(nothing.name + " поменять на " + oleg.name+"?");
vvod = scan.nextLine();
vvod = scan.nextLine();
if(vvod=="Да"){
oleg.love++;
System.out.println(nothing.love+not hing.name);
System.out.println(root.love+root.n ame);
System.out.println(oleg.love+oleg.n ame);
}
else if(vvod=="Нет"){
nothing.love++;
System.out.println(nothing.love+not hing.name);
System.out.println(root.love+root.n ame);
System.out.println(oleg.love+oleg.n ame);
}
}
else if (root.love == oleg.love){
System.out.println(root.name + " поменять на " + oleg.name+"?");
vvod = scan.nextLine();
if(vvod=="Да"){
oleg.love++;
System.out.println(nothing.love+not hing.name);
System.out.println(root.love+root.n ame);
System.out.println(oleg.love+oleg.n ame);
}
else if(vvod=="Нет"){
root.love++;
System.out.println(nothing.love+not hing.name);
System.out.println(root.love+root.n ame);
System.out.println(oleg.love+oleg.n ame);
}
}
else {
System.out.println("YAY!");
System.out.println(nothing.love+not hing.name);
System.out.println(root.love+root.n ame);
System.out.println(oleg.love+oleg.n ame);
}
}}}
class subject {
int love = 0;
int id;
String name;
}
AnnLikki вне форума Ответить с цитированием
Старый 19.12.2018, 21:30   #2
JavaDoc
Пользователь
 
Регистрация: 15.12.2018
Сообщений: 16
По умолчанию

Код:
 vvod=="Да"
дело в том что vvod у тебя это объект и "да" это тоже объект только другой и даной операцией ты сравниваешь ссылки переменных на эти объекта а они не равны. Стринги проверяются методом контейнс vvod.contains("да")
JavaDoc вне форума Ответить с цитированием
Старый 19.12.2018, 21:37   #3
AnnLikki
 
Регистрация: 19.12.2018
Сообщений: 3
По умолчанию

ОМГ, чел, большое спасибо, теперь всё работает 😸
AnnLikki вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в алгоритме Флавия Еким Помощь студентам 8 10.12.2018 15:43
Найти ошибку в алгоритме alexboliam Общие вопросы C/C++ 1 16.05.2018 21:19
ошибка в алгоритме с++ Tavasilyok Помощь студентам 1 29.05.2016 19:55
Помощь в алгоритме Pixelrom33 Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 11.01.2015 20:56
Ошибка в алгоритме parkito Общие вопросы C/C++ 1 07.12.2011 04:25