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后需直接跟分号;
 */

You may also like...

发表评论

邮箱地址不会被公开。 必填项已用*标注