0
I dont know how to make variable's content as a condition in Java
I need help on how to make variable's content as a condition (true/false) in Java. as an example, this is my code: Scanner scanner = new Scanner(System.in); System.out.println("Do you agree? (true/false) = "); String dataPuas = scanner.next(); if (dataPuas = "true") { System.out.println(" Thank you :) "); } else if (dataPuas = "false") { System.out.println(" Can you tell me what's wrong? "); String complains = scanner.next(); } i tried to use this code but it shows an error, " incompatible types. Required: Boolean. Found: String"
14 ответов
+ 2
I found this post for ways of comparation of strings: https://www.geeksforgeeks.org/compare-two-strings-in-java/
+ 1
Okeey i get it right now, thanks for your help, very nice to talk with people here :)
0
no it doesnt works well with " == "
but the IDE suggest me to replace == with .equals()
anyone has an idea what equals() is?
so now my code look like
if(dataPuas.equals(" true ") {}
it works well now! Thank You so Much!
0
equals() is used to compare the contents. For eg if two strings are same then it would return true or else false.
public class Program
{
public static void main(String[] args) {
String str1 = "abc";
String str2 = "abc";
System.out.println(str1.equals(str2));
}
}
This gives output true.
0
i had a new problem now, variable inside else if ( complains ) can't be accessed outside the statement, how? it shows "cannot resolve Symbol complains"
0
It would be nice if you can clearly state what are you trying to achieve. Then post your code and tell us where you are going wrong.
0
from my codes above :
else if (dataPuas = "false") {
System.out.println(" Can you tell me what's wrong? ");
String complains = scanner.next();
}
there is variable named complains, but when i printed this variable outside if-else statement, it shows error :
Error:(152, 55) java: cannot find symbol
symbol: variable complains
location: class com.main.app
maybe it because of non-accessible variable inside if-else statement? idk
0
Try writing that line just below your scanner class outside or above the loop.
Also if you want to store true or false in complains variable then why don't you write- boolean complains = scanner.nextBoolean();
0
which line? printing variable's line? when i wrote
//System.out.println(complains);
just below the
//String complains = scanner.next(); //it works.
but when i wrote it outside, it doesnt work
Also i need user's opinion, so it stores in String
0
import java.util.*;
public class Program
{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean dataPuas = scanner.nextBoolean();
//boolean complains = scanner.nextBoolean();
System.out.println("Do you agree? (true/false) = ");
if (dataPuas == true) {
System.out.println(" Thank you :) ");
} else if (dataPuas == false) {
System.out.println(" Can you tell me what's wrong? ");
}
}
}
complains is not created, that line is commented. Give input as either true or false.
0
Noo i dont mean to use boolean there, i mean why the variable cant used outside the statement, i need user opinion after the user choose false in the statement. So i use scanner in this case, handle it to variable called "complains".
So after it all, i want to print user's opinion, in this case the variable, but it shows error. Is it not the problem of global variable or something?
0
A variable defined inside a block has limited scope and can only be accessed within that block.
0
So it means it is impossible to print it outside?
0
Pretty much yes. Your way of coding is not right, there is no need to assign value to variable inside a if else statement.
Why can't you write the string complains just outside the else if statement. Is there a problem? You are complicating it too much.