public class Demo { public static void main(String[] args) { int i=0; i++=i++;//1 ++i=++i;//2 System.out.println("i ="+i); } }
-
//1 will create an compilation error
-
//2 will create an compilation error
-
//1 and //2 both will create an compilation error
-
//1 will create an runtime error
-
//2 will create an runtime error
-
//1 and //2 both will create an runtime error
Both statements are invalid. 'i++=i++' and '++i=++i' both attempt to assign to the result of an increment operation. In Java, increment expressions (i++ or ++i) return values but cannot be assignment targets (not l-values). Both lines cause compilation errors. The error is not at runtime but during compilation.
To answer this question, let's go through each option and analyze them:
Option A) //1 will create a compilation error - This option is incorrect. The code i++=i++; will not create a compilation error. However, it will result in undefined behavior since it is modifying the same variable twice in a single statement.
Option B) //2 will create a compilation error - This option is incorrect. The code ++i=++i; will not create a compilation error. Similar to option A, it will result in undefined behavior.
Option C) //1 and //2 both will create a compilation error - This option is correct. Both i++=i++; and ++i=++i; will create a compilation error because you cannot assign a value to the result of a pre/post-increment operation.
Option D) //1 will create a runtime error - This option is incorrect. The code i++=i++; will not create a runtime error. It will result in undefined behavior, but it will not cause a runtime error.
Option E) //2 will create a runtime error - This option is incorrect. The code ++i=++i; will not create a runtime error. It will result in undefined behavior, but it will not cause a runtime error.
Option F) //1 and //2 both will create a runtime error - This option is incorrect. Neither i++=i++; nor ++i=++i; will create a runtime error. They will result in undefined behavior, but they will not cause a runtime error.
The correct answer is Option C) //1 and //2 both will create a compilation error. Both statements i++=i++; and ++i=++i; violate the rules of assignment in Java and will not compile.