Java基础(二)-流程控制
Java基础目录送分题。我只能说懂的都懂,网络上只有删的干干净净了才会有人感兴趣,文章里面唯一值得注意的就是void方法也可以用return,只要不加返回值即可。之前忘了foreach这个循环了,感觉和python的差不多,但是python用的更顺手一点,也可能是先入为主。
语句与复合语句
简单语句,以分号 ; 结尾的语句。
复合语句,被花括号 {} 括起来的语句块,语句块中可包含任意数量的简单语句与复合语句。
注释
//单行注释
/*多
行
注
释*/
/*
* 编译器
* 美化后的
* 多行注释
*/
顺序结构
程序从头到尾一行行执行,无分支,无循环,无跳转。
嵌套
不论什么分支结构或循环结构,都能进行嵌套,即将 语句块/循环体 设置成 分支结构/循环结构 即可。
一言以蔽之,分支结构与循环结构也是语句的一种,因此可被放入语句块中。
分支结构
// if 语句中,仅条件表达式为真时执行if后第一个语句,否则执行else后第一个语句。
// if 条件语句
if(条件表达式){
语句块;
}
// if else 语句
if(条件表达式){
语句块1;
}
else{
语句块2;
}
// if else if语句,就是把上面的语句块2换成if语句。
if(条件表达式1){
语句块1;
}
else if(条件表达式2){
语句块2;
}
else{
语句块3;
}
/* switch 语句
* switch的表达式只能用整型与字符型,这还涉及到另一个问题,计算机难以判断两个浮点数是否相同。
* 常量表达式是常量,不可是变量。
* 语句块不一定要用花括号括起来,因为switch在进行选择时,只有在遇到break或者将后面代码执行完才会结束。
* 这就导致了两钟情况:
* 1.可以用多个case执行同一段语句块,只要不使用break;结束。
* 2.即便不使用花括号,也会继续执行,并不像后续的for/while/do while一般只会执行到第一条。
* 此外,default内的语句块会在两钟情况下生效:
* 1.所有case都不符合表达式
* 2.default前无break,程序按顺序执行到了default语句块。
*/
switch(表达式){
case 常量表达式1:
语句块1;
break;
case 常量表达式2:
语句块2;
break;
default:
语句块3;
}
循环结构
// while 循环,先判断条件表达式,为真再执行循环体。
while(条件表达式){
循环体;
}
// do while 循环,先执行循环体,再判断条件表达式。
// do while 循环末尾需要分号。
do{
循环体;
}while(条件表达式);
/* for 循环
* 表达式1可看做初始化语句,一个for循环只执行一次,在for语句开始前执行。
* 现判断条件表达式,为真执行循环体,否则跳出。
* 表达式3在每次循环体结束后,下一次条件表达式判断前执行,一般用作条件表达式中变量的修改。
* 三个表达式均可不写,但分号 ; 必须要有。
* 条件表达式若不写,等效为真,循环可执行。
*/
for(表达式1; 条件表达式; 表达式3){
循环体;
}
/* foreach 循环
* elementType为数组类型(因为java中数组元素只有一种,因此emelmentType也是数组元素类型)
* elements[]为已定义的变量数组。
* ele为未定义的变量名,在当前for循环中,第i轮的ele值等于elements[i-1]。
*/
for(elementType elements[] : ele){
第i轮循环中,ele为elements数组中第i个值,即elements[i-1];
循环体;
}
跳转语句
/* break:跳出特定循环,若break后不加标号,则跳出当前循环,
* 标号如下方代码中 breakSign: 所示用法,注意是冒号不是分号。
* 使用范围:
* while / for / do while / switch 的 循环体/语句块 中。
* 跳出特定循环:
*
下面代码中,若删除break breakSign;中的breakSign,则代码将无线循环,持续打印i的值。
* 但若维持代码不变,则只会输出一个0。
*/
int i=0;
breakSign:
for(;;) {
System.out.println(i);
for(;;)
if(i++>3) break breakSign;
}
/* continue:提前结束特定循环,若不加标号,则提前结束当前循环,标号的用法与break中标号的用法一致。
* 使用范围:while / for / do while 的循环体中。
* 提前结束循环的意思是,在该循环体中,不再执行continue;后的内容,
* 若处于多重循环中,则表示不再执行 该循环体 后的内容(该循环体 表示包含continue的循环体)。
*/
/* return:用作返回方法的返回值,执行后立即结束该方法,
* 如果return不是使用在方法中,则使用后会返回至主程序。
* 不论在C,还是Java中,void类型的方法也可以使用return结束,但return后需直接跟分号;
*/
共有 0 条评论