循环语句if在循环过程中都只会读取一次初始值;
break 在if和while中都一样,会终止循环,跳出。
continue在if 和while中都是跳过执行continue之后的语句,if中不同的是,i++即调整是放再continue前的,而while是放在continue之后的,所有不会再i++。
if语句变种:
if(初始值1,初始值2;条件判断1,条件判断2;调整1,调整2)
它的执行流程:1.先计算比较表达式的值,看其返回值是true还是false。
2.如果是true,就执行语句体;
3.如果是false,就不执行语句体;
下面通过代码来演示if语句:
public class IfDemo01 {
public static void main(String[] args) {
int x = 10
if(x == 10) {
System.out.println("x等于10")
}
if(x == 20) {
System.out.println("x等于20")
}
System.out.println("over")
}
}
我们在使用if语句的时候需要注意什么呢?
1.比较表达式无论简单还是复杂,结果必须是boolean类型
2.if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。
3.一般来说:有左大括号就没有分号,有分号就没有左大括号
如下代码:
public class IfDemo02 {
public static void main(String[] args) {
int x = 10
if(x == 10) {
System.out.println("x等于10")
}
if((x >5) || (x == 10)) {
System.out.println("x大于或者等于10")
}
System.out.println("-------------------")
int a = 100
自己能想到的答案:1、使用外部嵌套,使该循环永远执行不了(这点大学一个宿舍同学也想到了);
if(1==2){while(true){ i++;}}
2、直接不用管它,因为i既然能够加加了,那么i一定是整型的变量了,整型的变量都有一个范围的,超过他的范围就会溢出异常了,这宿舍另一个同学也在qq上跟我说过一次;
不过经过我的简单测试,感觉这么让他执行到超出范围的话,不知道要等到什么时候呢,这个答案不怎么算正确的;
3、修改while条件,使循环不能执行:
while(true &&false){ i++;}
4、第三个的解决办法中,由此我倒是想到了一个办法,让这个循环体不但不会死循环而且还会执行一定的循环次数:
例如:while(true &&i <5){ i++;}
5、继续,还可以把while条件中的true直接修改为false,这样更直接而且有效;
6、继续,或者干脆将while也修改一下,直接将while修改为if也是一个很好的解决办法,而且也很有效;
7、继续,其实这个题目并没有标明这个循环是在那种编译环境下执行的,起码就我所知的环境,就是这种写法在c++、java、c#、javascript下都是可以执行的,所以我们直接就可以把i定义为一个var i = true 然后跟着这个题目中的语句块while(true){ i++;};
而我们知道,js是解释执行的,所以不存在编译报错的问题,而这样写的话,就会使该js是执行时报错,直接不会出现死循环;
8、其他的所有修改过后直接编译就不通过的在此不作罗列……
while(true){ i++;}请问如何不会陷入死循环,要求不能在大括号之间添加任何语句……