1. Sometimes we may get the following error message in an 'if' (selection) structure.
incompatible types
found : int
required: boolean
This is because, we have not specified a boolean expression as the condition of the 'if'; instead we might have written such an expression which is may be int, float, String or other types but not boolean.
See the code below:
int a=10,b=10;
if(a=b){System.out.println("a and b are equal");}
Check the condition is a=b. Is it a boolean expression? By using a single = (equal sign), value of b is assigned to a which is an integer. That's not correct. We must use == (double equal sign) for comparing two variables for equality.
Correct code is the below:
int a=10,b=10;
if(a==b){System.out.println("a and b are equal");}
2. Sometimes it happens because of assigning one type of value to a variable of other types. See the code below:
String text='a';char ch="a";
In this case the error message will be:
incompatible types
found : char
required: java.lang.String
String text='a';
^
incompatible types
found : java.lang.String
required: char
char ch="a";
^
Here we have not assigned correct value for the variables text and ch. In the first line, we have assigned a char value to a String variable. 'a' is a char value because it is written within ' ' (single quotation mark) . In the second line, we have assigned String value "a" to a char type variable. Note that String value is written within " " (double quotation mark). So we tried to assign char value to a String variable and a String value to a char variable. The correct code is:
String text="a";char ch='a';
If you see this error, check that the correct type of value or variable is assigned.
very good explanation..
ReplyDelete