tag:blogger.com,1999:blog-9193160645817040317.post2219286925151494886..comments2015-12-22T12:31:53.234+05:30Comments on Twisters - The New Age Java Quiz: Puzzle 16 – The ‘=’ puzzleSaifuddin Merchanthttp://www.blogger.com/profile/09008041357659535766noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-9193160645817040317.post-78179077140517476112009-04-25T13:00:00.000+05:302009-04-25T13:00:00.000+05:30Another odd use of = is in combination with assert...Another odd use of = is in combination with assert.<br /><br />// debug is true is assertions have been turned on.<br />boolean debug = false;<br />assert debug = true;Peter Lawreyhttps://www.blogger.com/profile/17982030676088168612noreply@blogger.comtag:blogger.com,1999:blog-9193160645817040317.post-83032635557994112612009-04-25T12:58:00.000+05:302009-04-25T12:58:00.000+05:30A common example is
BufferedReader br = ...
Strin...A common example is<br /><br />BufferedReader br = ...<br />String line;<br />while((line = br.readLine()) != null) {<br /> // do something with the line<br />}Peter Lawreyhttps://www.blogger.com/profile/17982030676088168612noreply@blogger.comtag:blogger.com,1999:blog-9193160645817040317.post-76197186779970966102009-04-18T08:33:00.000+05:302009-04-18T08:33:00.000+05:30Scenario 1, it fails
public class SimpleTest1 {
...Scenario 1, it fails<br /><br />public class SimpleTest1 {<br /> public static void main(String[] args) {<br /> int i = 10;<br /> if (i = 9) {<br /> System.out.println("i not equal to 10");<br /> }<br /> }<br />}<br /><br />Scenario 2, it works fine<br /><br />public class SimpleTest2 {<br /> public static void main(String[] args) {<br /> boolean possible = false;<br /> if (possible = true) {<br /> System.out.println("possible is true");<br /> }<br /> }<br />}<br /><br />In scenario 1, it fails with the following error<br /><br />SimpleTest1.java:6: incompatible types<br />found : int<br />required: boolean<br /> if (i = 9) {<br /> ^<br />1 error<br /><br />This is because, if statement always excepts the expression should result in boolean value.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-9193160645817040317.post-21763258900957202282009-04-17T04:39:00.000+05:302009-04-17T04:39:00.000+05:30boolean foo = true;
if (foo = false) {
// unre...boolean foo = true;<br />if (foo = false) {<br /> // unreachable<br />}Alex Rnoreply@blogger.comtag:blogger.com,1999:blog-9193160645817040317.post-66909491047364744722009-04-16T22:41:00.000+05:302009-04-16T22:41:00.000+05:30boolean t = true;
boolean f = false;
if (t = f) {
...boolean t = true;<br />boolean f = false;<br />if (t = f) {<br /> // just a warning<br />}<br />if (!(t = f)) {<br /> // not even a warning<br />}Scott Vachalekhttps://www.blogger.com/profile/16657240494706707555noreply@blogger.comtag:blogger.com,1999:blog-9193160645817040317.post-62385300797246951232009-04-16T22:03:00.000+05:302009-04-16T22:03:00.000+05:30int i = 0;
if ((i = 1) == 0) {
System.out.prin...int i = 0;<br />if ((i = 1) == 0) {<br /> System.out.println("This should not happen!");<br />} else {<br /> System.out.println("It worked!");<br />}Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-9193160645817040317.post-23548327850623154572009-04-16T13:59:00.000+05:302009-04-16T13:59:00.000+05:30I suppose you refer to this:
boolean b;
if (b = t...I suppose you refer to this:<br /><br />boolean b;<br />if (b = true) {<br /> // compilation warning, but no error<br />}<br /><br />The only thing that Java doesn't do is automatically consider non-null values as boolean values. Assignment expressions do not receive special treatment.Anonymousnoreply@blogger.com