开启Java之旅——003程序流程控制(24.3.19)

本文详细介绍了Java中的if选择结构、标准和扩展if语句、switch选择结构、break和continue关键字、while、do-while、for循环,以及增强for遍历数组和集合。通过实例演示了这些控制结构在实际编程中的应用。
摘要由CSDN通过智能技术生成

程序流程控制

一、选择结构

1、if选择结构

*简单if语句

if( 关系表达式<或者是布尔表达式> )

{  
    语句体(true就成立执行语句体,false就绕过了语句体,直接输出结束。);
}

package com.sh.work;

public class If1 {
    public static void main(String[] args) {
        int a = 1;
        int b = 1;
        //如果成立就打印yes
        if( a == b ){
            System.out.println("yes");
        }
    }
}


*标准语句

if(关系表达式){

语句体1;

}else{

语句体2;

}

注意:如果关系表达式为ture则执行语句体1,如果表达式为false则执行语句体2; 在执行的时候不能两个都执行,也不能两个都不执行。

package com.sh.work;

public class If2 {
    public static void main(String[] args) {
        double score = 55;
        if (score >= 60){
            System.out.println("恭喜你,成绩合格");
        }else{
            System.out.println("很遗憾,成绩不合格");
        }
    }
}

*扩展语句
if(判断条件1){

语句体1;

}else if(判断条件2){

语句体2;

}

...........

else if(判断条件n){

语句体n;

}else{

语句体n+1;

}

注意:如果满足条件一,则下面的将不再执行;如果为false则执行语句体2、3、n。有一个满足的下面的将不再执行;如果以上的都不满足,将会无条件的执行else里的n+1的条件语句。

package com.sh.work;

public class If3 {
        public static void main(String[] args) {
            int a = 3;
            int b = 2;
            if(a == 1 && b == 2){
                System.out.println("yes1");
            } else if( a < 2 || b > 3){
                System.out.println("yes2");
            } else if( a >= 3 && b == 2){
                System.out.println("yes3");
            } else{
                System.out.println("yes4");
            }
        }
    }


package com.sh.work;
//字符串判断相等(使用 "equal")
public class If4 {
        public static void main(String[] args) {
            String name = new String("张三");
            if(name.equals("王五")){
                System.out.println("yes1");
            } else if( "赵四".equals(name)){
                System.out.println("yes2");
            } else if( name.equals("张三")){
                System.out.println("yes3");
            } else{
                System.out.println("yes4");
            }
        }
    }


2、switch选择结构

*break关键字

break关键字可以用在switch中,一旦执行,整个switch将立刻结束
break关键字也可以用在其他语句中,整个循环语句立刻结束,打断循环

*default关键字

default的作用是在case匹配失败之后才会被执行,打印出来相对应的输出信息

*continue关键字

contine关键字立即跳过本次的循环,进入到下一个循环语句当中

package com.sh.work;

public class Switch {
    public static void main(String[] args) {
        char grade = 'c';
        switch (grade) {
            case 'a':
                System.out.println("优");
                break;
            case 'b':
                System.out.println("良");
                break;
            //break在整个语句中,一旦被执行将会结束整个循环
            //c和d如果不加break将会打印输出“中”后面的所有的输出字符
            case 'c':
                System.out.println("中");
                break;
            case 'd':
                System.out.println("差");
                break;
            //default的作用是在case匹配失败之后才会被执行,打印出来相对应的输出信息
            default:
                System.out.println("您的输入有误!");
        }
    }
}

3、循环结构

*while循环

在进行执行的时候首先对条件语句进行判断才进行执行,在循环次数不确定的时候通常使用while循环语句

初始表达式;

while(条件判断){

循环语句;

步进语句;

}

例1:使用whlle循环语句来计算1+2+3+……+100的和

package com.sh.work;

public class While1 {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        while(i <= 100){
            sum = sum + i;
            i++;
        }
        System.out.println(sum);
    }
}
*do while 循环

初始语句;

do{

循环体;

步进语句;

}while(条件判断表达式);

4、for循环

在执行的时候先进性判断然后在执行,在执行的时候循环次数确定

for(初始值;条件表达式;步进语句){

循环体1;

}else{

循环体2;

}

例1:求100以内(包括100)的奇数偶数的和以及总体的和

package com.sh.work;

public class for1 {
    public static void main(String[] args) {
        int sum1 = 0;
        int sum2 = 0;
        for(int i = 0;i <= 100;i++){
            if(i %2 !=0){
                sum1+=i;
            }else{
                sum2+=i;
            }
            System.out.println("此时和为:"+sum1);
            System.out.println("此时和为:"+sum2);
        }
        System.out.println("此时和为:"+sum1+sum2);
    }
}

例2:用for循环输出1-1000以内(包含1000)内所有可以被5整除的数,并且每一行只打印三个

package com.sh.work;

public class for2 {
    public static void main(String[] args) {
        for(int i =0;i < 1000;i++){
            if(i % 5 == 0){
                System.out.println(i+"\t");
                //上制表符用于在文本输出中产生水平间距的特殊字符,制表符通常用转义序列 “\t” 来表示
                // 当程序执行到输出制表符时,它会在当前输出位置插入足够的空格
                // 使光标移动到下一个预定义的制表位置,这有助于在文本中创建垂直对齐的列或者在输出中产生固定的间距
            }
            if(i %(5*3) == 0){
                //如果i能被15整除(即每输出3个能被5整除的数)
                System.out.println("\n");
            }
        }
    }
}

例3:打印等腰三角形

package com.sh.work;

public class for3 {
    public static void main(String[] args) {
        for(int i = 1;i <= 5;i++){
            //外层循环,控制三角形的行数,从第一行到第五行
            for(int j = 5;j >= i;j--){
                            System.out.print(" ");
                        }
            //在每行开始输出前,先输出一定数量的空格,用来控制每行的缩进,使三角形图案向右侧靠齐
                        for (int j = 1;j <= i;j++){
                            System.out.print("*");
                        }//左侧部分
                        for (int j = 1;j < i;j++) {
                            System.out.print("*");
                        }//右侧部分
                        System.out.println();
                    }
                }
            }

例4:利用for循环打印九九乘法表

package com.sh.work;

public class for4 {
    public static void main(String[] args) {
        //只要减少重复项即可,我们发现j是不变的,只有i<j的时候才能满足
        for (int j = 1; j <= 9; j++) {
            //外层循环控制乘法表的行数,从1到9
            for (int i = 1; i <= j; i++) {
                //内层循环控制每一行输出的表达式,从1到j
                //输出成1*i的形式,此时应该考虑怎么解决2* 3*的问题,如果解决的话需要将常量1改成变量的形式,在加一个for循环
                System.out.print(j + "*" + i + "=" + (j * i) + "\t");
            }
            //每输出一行进行换行
            System.out.println();
        }
    }
}

5、增强for

主要用来遍历数组和集合的。

for(声明语句:表达式){

代码句子;

}

for (element_type element : array_or_collection) {
    // 循环体,对每个元素执行的操作
}

在这个语法结构中,element_type 是存储在数组或集合中的元素的数据类型,element 是在每次迭代时作为循环变量使用的变量名,array_or_collection 则是要进行迭代的数组或集合。

使用 for-each 循环时,不需要手动追踪当前迭代的索引或者使用索引来获取元素,而是直接将元素赋值给循环变量,这样就能够逐个访问数组或集合中的元素,简化了代码的书写,也提高了代码的可读性。

需要注意的是,for-each 循环只能用于遍历数组或实现了 Iterable 接口的集合类,无法用于普通的集合类。

package com.sh.work;

public class for5 {
    public static void main (String[] args){
        int[] i ={10,20,30,40,50};
       //整型数组i,初始化包含五个元素的数组
        for(int x =0;x<5;x++){
            System.out.println(i[x]);
        }
        //数组每一项遍历出来赋值给int x,x指的就是每一个数值
        for (int x:i){
            System.out.println(x);
            //使用 for-each 循环语法,遍历数组i中的每一个元素,将当前元素赋值给x
        }
    }
}

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值