Member 13954890 Ответов: 1

Как я могу проверить, присутствует ли курс или нет ?


public class Coursecheck {
public static void main(String args[])
{
String co[]=new String[9];
String ser=" ";
int flag=0;
Scanner s=new Scanner(System.in);
System.out.println("enter sub");
for(int i=0;i<3;i++)
	co[i]=s.nextLine();
System.out.println("enter search");
ser=s.nextLine();
for(int j=0;j<3;j++) {
	if(ser==co[j])
	{
		
		flag=1;
		break;
	}
}
if(flag!=1)
	System.out.println("course is not present");
else
	System.out.println("course is present");
}
}


Что я уже пробовал:

for(int j=0;j<3;j++) {
	if(ser==co[j])
	{
		
		flag=1;
		break;
	}
}
if(flag!=1)
	System.out.println("course is not present");
else
	System.out.println("course is present");


Каждый раз, когда он печатает "курс недоступен", однако он доступен.Что не так с логикой?

1 Ответов

Рейтинг:
4

raddevus

знаю:
Возможно ли, что следующая строка кода никогда не будет истинной?

if(ser==co[j])


Ах, да, это возможно. Теперь, когда я смотрю на него поближе, вы делаете ser (string)
но сравнение в этой строке фактически сравнивает два объекта (и они никогда не равны.
Затем, поскольку это никогда не бывает истинно, флаг никогда не устанавливается в 1.

Вы должны сделать сравнение строк по-другому в Java. Измените строку на:
if(ser.equals(co[j]))