Why change && to || leads to the fact that the variable is not visible

I am doing some practice with reading files, and I have been tasked with writing File Interleave code for unbalanced files. So, if I have such things, they work just fine:

while ((inputLine1 = LineSequential.read(inFileStreamName1)) != null **&&** (inputLine2 = LineSequential.read(inFileStreamName2)) != null) 

Pay attention to & & ... but if I change it to || netbeans claims that inputLine2 was not initialized (although it sees that inputLine1 works just fine):

while ((inputLine1 = LineSequential.read(inFileStreamName1)) != null **||** (inputLine2 = LineSequential.read(inFileStreamName2)) != null)

Right now, if inputLine1 (this is data from file A) first becomes null, I only get every line in inputLine2 (from file B). At each iteration of the loop, a line is skipped. I'm pretty sure this is due to where I initialize inputLine2 ..:

while ((inputLine1 = LineSequential.read(inFileStreamName1)) != null || LineSequential.read(inFileStreamName2) != null) {           
    inputLine2 = LineSequential.read(inFileStreamName2);
    System.out.println(inputLine2);
    if(inputLine1 != null && inputLine2 == null){
    LineSequential.write(outFileStreamName, inputLine1);
    }else if(inputLine1 == null && inputLine2 != null){
        LineSequential.write(outFileStreamName, inputLine2);
    }
    else if(inputLine1 != null && inputLine2 != null){
       LineSequential.write(outFileStreamName, inputLine1);
       LineSequential.write(outFileStreamName, inputLine2); 
    }
}
+4
2

. , .

&& ||. && , , , ( , ). || ; , , , .

, : || , , && inputLine2.

+3

Java / . ||, , , , . , , .

, , .

+5

Source: https://habr.com/ru/post/1684848/


All Articles