JAVA的基本控制结构

JAVA的基本控制结构

在Java语言中有三种基本控制结构:

  • 顺序结构
  • 选择结构
  • 循环结构

顺序结构

顺序结构是JAVA语言的基本结构,也是最简单的算法结构。程序按照从上到下的顺序一行一行的执行,中间没有任何判断和跳转。
例如:

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要输出的值");
        String str=scanner.nextLine();
        System.out.println("输出:"+str);
        scanner.close();

选择结构

选择结构根据条件不同执行不同的语句,主要有if……else和switch—case两种语句。

if语句

在实际使用时,常常将if语句划为单选择结构、双选择结构、多选择结构以及嵌套使用四种情况。

单选择结构:

语法格式:
if(布尔表达式)
{
布尔表达式为true时执行的语句
}

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要输出的值");
        String str=scanner.nextLine();
//        if单选择语句
        if (str.equals("hello")){
            System.out.println(str);
        }
双选择结构:

语法格式:
if(布尔表达式)
{
布尔表达式为true时执行的语句
}
else{
布尔表达式为false时执行的语句
}

    //考试成绩大于60是及格,小于60为不及格
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩");
        int i=scanner.nextInt();
        if(i>=60){
            System.out.println("成绩及格");
        }else{
            System.out.println("成绩不及格");
        }
        scanner.close();
if多选择结构:

语法格式:
if(布尔表达式1)
{
布尔表达式为true时执行的语句
}else if(布尔表达式2){
布尔表达式2为true时执行的语句
}else if(布尔表达式3){
布尔表达式3为true时执行的语句
}else if(布尔表达式4){
布尔表达式4为true时执行的语句
}……

这里要注意的是if语句在进行判断时的优先级,布尔表达式1优先其他表达式先进行判断,布尔表达式2优先表达式3,4……进行判断,以此类推,布尔表达式越靠后的越晚判断。

//考试成绩60~80是及格,80~90为良好,90~100为优秀,小于60为不及格,
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩");
        int i=scanner.nextInt();
        if(i>=90){
            System.out.println("成绩优秀");
        }else if (i>=80){
            System.out.println("成绩良好");
        }else if (i>=60){
            System.out.println("成绩及格");
        }else {
            System.out.println("成绩不及格");
        }
        scanner.close();

if语句的嵌套

if语句的嵌套就是在一个if语句或者else if语句中再次使用一个或多个if语句。
语法格式:
if(布尔表达式1)
{
if(布尔表达式2){
语句;
}
}

      int  age=18;
      int weigth=70;
      if(age>=18){
          if(weigth>60){
              System.out.println("合格");
          }
     }
switch—case多选择语句

多选择结构另一个实现方式就是switch-case语句,switch-case语句判断一个变量与一系列常量中某个值是否相等,每一个常量都是一个分支。
语法格式:
switch(表达式){
case 常量1:
语句1;
// break;
case 常量2:
语句2;
// break;
… …
case 常量N:
语句N;
// break;
default:
语句;
// break;
}

注意点:
switch中的常量类型可以是byte、short、int、long、char、string。同时,case后面的类型必须为字符串常量或字面量。
default后语句作用为所有的case后的值钧于表达式的值不匹配时执行。
在switch语句中,在每一个case语句结束的后面都可以添加break,作用为当前语句运行结束后退出switch语句。

      char c='c';
      switch (c){
          case 'A': System.out.println("成绩优秀");break;
          case 'B': System.out.println("成绩良好");break;
          case 'C': System.out.println("成绩及格");break;
          case 'D': System.out.println("成绩不及格");break;
      }

循环结构

在Java语言中,有三种循环结构:while循环,do-while循环和for循环。

while循环

语法结构:
while(布尔表达式)
{
循环内容
}

布尔表达式的值为true时,循环就会一直执行下去。
只有在极少数情况下要循环一直执行,大多数情况,我们都会人循环停止。因此我们需要一个让表达式为false的方式结束循环。
在通常情况下,让表达式一直为true会造成无线循环(死循环)这会造成程序卡死和崩溃。所以,在编写程序时要尽量避免出现死循环

例如:

//计算1+2+3+4...+100
        int i=0;
        int sum=0;
        while(i<=100){
            sum+=i;
            i++;
        }
        System.out.println(sum);
do-while

语法格式:
do{
循环语句
}while(布尔表达式);

相对于while语句,do-while语句无论布尔表达式的值是什么,都会执行一次循环语句暨循环至少执行一次。并且do-while语句会先执行循环语句在判断,while语句先判断在执行循环语句
这里我们举个例子对比以下while和do-while的区别

        int i = 0;
        while(i<0){
            System.out.println(i);
            i++;
        }
        System.out.println("-------------------");
        do {
            System.out.println(i);
            i++;
        }while(i<0);

运行结果:
在这里插入图片描述
从运行结果中我们可以看到,while循环体没有执行,而do-while循环体执行了一次。

for循环

语法格式:
for(初始化;布尔表达式;更新)
{
循环体;
}

for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。for循环的执行次数是在执行前就确定的。
这里只介绍简单的for循环应用,不涉及数组和对象。
关于for循环执行过程的说明:

  • 初始化:最先执行的初始化步骤,可以声明一种类型,也可以一个或多个循环控制变量,甚至可以是一个空语句。此部分只在开始进入for循环时执行一次。
  • 布尔表达式:用于判断是否执行循环体。布尔表达式为true时执行循环体,false退出循环。
  • 更新:执行一次循环后,更行循环控制变量(迭代因子控制循环变量增减)
  • 在次检查布尔表达式循环执行上面过程。

例如:

  //打印九九乘法表
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= 9; j++) {
                System.out.println(i + "*" + j + "=" + (j * i)+"\t");
            }
            System.out.println();
        }
    }
for循环扩展

语法格式:
for(声明类型:表达式){
循环体;
}

该用法主要用于数组和集合。
声明类型:声明新的局部变量,该变量类型必须数组元素的类型匹配,其作用域限定在循环体内。
表达式:表达式的值是要访问的数组名也可以是返回值为数组的方法。
例如:

        int[] number={10,20,30,40};
        for(int x:number){
            System.out.println(x);
        }

运行结果:
在这里插入图片描述

关于数组和集合的for循环用法还有很多,这里就不过多介绍了。

break、continue、goto

break:在任何循环体中,都可以使用break控制循环的流程。用于退出当前循环体,不执行循环体接下来的部分。在switch中也常常使用。
continue:在循环体中,终止某次循环过程。即跳过接下来循环体的内容,执行下一次循环体判断过程。
goto:
goto关键字很早就在程序设计语言中出现。尽管goto是Java一个保留字,但未在语言中正式使用;Java没有goto。然而,在break和continue这两个关键字的身上,我们依然能看出一些goto的影子。至于goto的用法,这里也不做介绍。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值