本文共 3772 字,大约阅读时间需要 12 分钟。
1.执行控制
Java的代码一般情况下是从上到下,逐行执行的。以“;”结尾的是一条简单语句,而封闭在括号内的则是复合语句。
2.条件语句
if-else条件语句
if-else条件语句是最简单的条件语句。其中else是可选项,用来表示if的分支。下面看一个简单的if-else。
if(1>0){
System.out.println("进入了if");
}else{
System.out.println("进入了else");
}
这里由于1>0,if成立,所以执行打印“进入了if”;如果把1>0改为1<0,则会进入else块。if-else可以写多个并列,如下:
if(1>0){
System.out.println("进入了if");
}else{
System.out.println("进入了else");
}
if(1<0){
System.out.println("进入了if");
}else{
System.out.println("进入了else");
}
if-else也可以嵌套写,如下:
int i=3;
if(i>0){
System.out.println("i大于0");
if(i>2){
System.out.println("i大于2");
}
}else{
System.out.println("i小于0");
}
这里由于i大于0,所以会进入外层if的代码块,输出“i大于0”;然后i>2,进入内层if条件,输出“i大于2”。 if-else还有一种特殊的阶梯形式写法,如下:
int i=3;
if(i==1){
System.out.println("i等于1");
}else if(i==2){
System.out.println("i等于2");
}else{
System.out.println("i不等于1也不等于2");
}
这里第一个if条件,i==1不成立,然后进入第二个if条件,i==2也不成立,最后进入else输出“i不等于1也不等于2”。
switch条件语句
switch条件语句的逻辑与if-else的阶梯形类似,代码如下:
int i=3;
switch (i) {
case 1:
System.out.println("i等于1");
break;
case 2:
System.out.println("i等于2");
break;
case 3:
System.out.println("i等于3");
break;
default:
System.out.println("i不等于1或2或3");
break;
}
switch的表达式必须是byte、short、int或者char的一种,case的值必须和表达式的类型一致并且不能重复。它会计算表达式的值,然后与case对比,如果值相等,那么执行case块内的代码,在case块结尾看到break后跳出switch。如果case块中没有break,那么会继续执行一下个case块内容,直到看到break关键字。如果没有匹配的case,则执行default块内容。
3.循环语句
while循环
while循环是Java中最基本的循环语句。示例如下:
int i=1;
while(i<4){
System.out.println("循环第"+i+"次");
i++;
}
这里i=1,while的表达式i<4,成立,所以进入while的代码块,执行输出并且i自增;i=2,while的表达式i<4,成立,再次执行while的代码块,执行输出并且i再自增;i=3,while的表达式i<4成立,再次执行while的代码块输出并且i自增;这时i=4,不满足while的表达式,循环也就终止了。这里只要while的表达式内成立,就会一直循环,所以用while的时候一定要注意表达式,不要让while成为无限循环也就是死循环。
do-while循环
while虽然能执行循环的操作,但是也有缺陷,如果表达式的条件一开始就为false的话,while里的代码是一次都不会执行的,可有时候我们需要循环体内的代码至少执行一次,这里我们就用到了do-while。
int i=1;
do{
System.out.println("循环第"+i+"次");
i++;
}while(i<4);
do-while大体和while相同,唯一的区别就是do-while至少会执行一次循环体内的代码。
for循环
for循环是增强型的循环语句,示例如下:
for(int i=1;i<3;i++){
System.out.println("循环第"+i+"次");
}
for的表达式第一个分号前是初始化值,这个值是用来控制循环的;第二个分号前的语句是终止循环的条件,当不满足这个条件时则跳出循环;最后一个值则是控制第一个值的。
for循环也支持多个变量来控制循环次数,示例如下:
for(int i=1,j=3;i
System.out.println("循环第"+i+"次");
}
这里循环只会执行一次,第一次i=1,j=3,i
for的三个语句都可以单独拿出去写,如下:
boolean j = true;
for(int i=1;j;i++){
if(i==2){
j=false;
}
System.out.println("循环第"+i+"次");
}
这里执行2次,当i=2时,j=false跳出循环。
boolean j = true;
int i=1;
for(;j;){
if(i==2){
j=false;
}
System.out.println("循环第"+i+"次");
i++;
}
这里与上面的输出相同。
for(;;){
}
这里是一个没有条件的for循环
4.跳出语句
break语句
break可以跳出当前最小循环,示例如下:
for(int i=1;i<=50;i++){
System.out.println(i);
if(i==5){
break;
}
}
这里会输出1、2、3、4、5,当i=5时,break跳出了循环,将不会继续输出。而如果是嵌套循环,break只能跳出当前最小循环,而外层循环则会继续执行。
for(int i=1;i<=50;i++){
System.out.println("i:"+i);
for(int j=1;j<10;j++){
System.out.println("j:"+j);
if(j==2){
break;
}
}
}
这里i会输出1到50,然后每个i输出之间会输出1和2。break也可以跳出代码块,示例如下:
block1: { //带标记的语句块
block2: {
for (int i = 1; i <= 50; i++) {
System.out.println("i:" + i);
for (int j = 1; j < 10; j++) {
System.out.println("j:" + j);
if (j == 2) {
break block2;
}
}
}
System.out.println("block2");
}
System.out.println("block1");
}
System.out.println("main");
这里我们会输出i:1,j:1,j:2,block1,main。这里当j=2的时候,break跳出block2,所以会执行block1和main。
continue语句
continue是跳过当前最小循环的本次循环,执行下一次循环。
for (int i = 1; i <= 3; i++) {
if(i==2){
continue;
}
System.out.println(i);
}
这里会输出1,3,当i=2的时候,continue会跳过本次循环,所以不会输出2。continue和break一样,也可以对代码块进行跳转,如下:
block1:for (int i = 1; i <= 5; i++) {
System.out.println("i:"+i);
for(int j=1;j<4;j++){
if(j==2){
continue block1;
}
System.out.println("j:"+j);
}
}
这里i会输出1到5,在i之间会输出j:1,这里每当内层循环的j=2的时候,continue便跳出内层循环,执行被标记为block1的外层循环上执行。
return语句
return用来结束当前方法,只要看见了return,不论这个方法后面还有什么代码,通通不执行。示例如下:
for (int i = 1; i <= 5; i++) {
System.out.println("i:"+i);
for(int j=1;j<4;j++){
if(j==2){
return;
}
System.out.println("j:"+j);
}
}
这里会输出i:1,j:1,当内层循环的j=2的时候,return结束了该方法。
转载地址:https://blog.csdn.net/weixin_32473663/article/details/114251714 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!