Java 程序的控制结构

  Java程序,每条语句 必须 以分号 “;” 结尾  

 

一、Java程序结构的分类

        结构化程序设计 的流程控制 语句 有3种:顺序结构 、分支结构、循环结构。

        顺序结构:从头到尾依次执行每一条语句。

        分支结构 :根据不同的条件 执行不同的语句或语句体。

        循环结构:为了重复 执行一类操作 而重复执行语句或者语句体

二、结构类型的详解

1、顺序结构

按语句的 顺序 一条一条依次执行。

public class order {
    public static void main(String[] args){
        String a="您好";
        int b = 3;
        double c = 0.14;
        System.out.println(a);
        System.out.println(c);
        System.out.println(b);
    }
}

2、分支语句

分置语句用于实现分支结构程序设计

public class branch_statement {
    public static void main(String[] args){
        int a = 10;
        if(a%2==0){
            System.out.println("变量a是偶数");
        }
        if(a%2!=0){
            System.out.println("变量a是基数");
        }
    }
}

if语句

                if语句有三种形式

A、单选条件语句 

单选条件语句的语句格式为:

if(<表达式>)
   
  <语句>   

       

public class single_option_condition {
    public static void main(String[] args){
        int max;
        int a=23;
        int b=45;
        System.out.println("比较a,b两者的大小");
        max = a;
        if(b>max){
            max=b;
        }
        System.out.println("最大值是:"+max);

    }
}

   

                                                    ​​​​ ​​​​​

        当条件表达式为真,则执行相关 的语句,否则不执行

        说明:条件表达式 必须用 一对圆括号 “()”括起来

        语句体可以是多条 语句,若是多条语句 ,必须用 一对花括号 ”{}“括起来构成一个复合语句

B、双选条件语句

双选条件语句的语句格式为:

if(<表达式 >)

        <语句1>

else

        <语句2>
import java.util.Scanner;
public class Multiple_choice_condition {
    public static void main(String[] args){
        int a,b,max;
        Scanner src = new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        a=src.nextInt();
        System.out.println("请输入第二个整数:");
        b=src.nextInt();
        if(a>b){
            max=a;
        }
        else{
            max=b;
        }
        System.out.println("最大值是:"+max);
    }
}

当 if语句中 的表达式为真时执行语句1,否则执行语句2

C、多选条件语句

多选条件的 语句格式为:

if(<表达式 1>)

        <语句1>

else  if(<表达式 2>)

        <语句2>

else if(<表达式 3>)

        <语句 3>

………………

else

        <语句n>
import java.util.Scanner;
public class Multiple_choice_condition {
    public static void main(String[] args){
        int a,b,max;
        Scanner src = new Scanner(System.in);
        System.out.println("请输入一个成绩:");
        a=src.nextInt();
        if(a>90 && a<100){
            System.out.println("优秀");
        }
        else if(a>70 && a<=90){
            System.out.println("一般");
        }
        else if(a>60 && a<=70){
            System.out.println("及格");
        }
        else
        {
            System.out.println("糟糕");
        }

    }
}

依次判断if中 的表达式,满足则执行对应 的语句,都不满足 则执行else下得语句

2.1、if语句的嵌套 

if 语句中可以包含一个或 多个 if语句,格式一般为:

if(<表达式 1>)

        if(<表达式 2>)

                <语句1>

        else

                <语句 2>

else

        if(<表达式3>)

                <语句3>

        else

                <语句4>
import java.util.Scanner;
public class if_nest {
    public static void main(String[] args){
        String str;
        Scanner src = new Scanner(System.in);
        System.out.println("请输入一个长为6个字符的字符串");
        str = src.next();
        if(str != null){
            if(str.length()==6){
                System.out.println("输入正确,您输入的是:"+str);
            }
            else{
                System.out.println("输入有误,请重新输入");
            }
        }
        else{
            System.out.println("未有参数输入,请检查");
        }
    }
}

        执行时,按if 语句 的条件判断,满足后,进行执行 对应语句

        内层的if语句嵌套在外层的if语句的if部分。

        if语句嵌套使用时,应当注意else与if的配对关系:else总是与前面最近的还没有配对的if进行配对

2.1、switch 语句

在if语句中,布尔表达式的值只有TRUE和FALSE两种。

java提供一种可以提供更多选择的与具有:switch语句,也称开关语句

作用:实现多路分支程序

语句格式

switch(表达式){
    case 常量1:
        语句组1;
        break;
    case 常量2:
        语句组2;
        break;
    case 常量n--1:
        语句组n-1;
        break;
    default:
        语句组n;
import java.util.Scanner;
public class switch_statement {
    public static void main(String[] args){
         int num;
         Scanner sr = new Scanner(System.in);
         System.out.println("请选择:\n" +
                 "1.主页\n" +
                 "2.博客\n" +
                 "3.项目\n" +
                 "4.附件");
         num = sr.nextInt();
         switch(num){
             case 1:
                 System.out.println("欢迎来到主页");
                 break;
             case 2:
                 System.out.println("欢饮进入博客");
                break;
             case 3:
                 System.out.println("欢饮进入项目");
                 break;
             case 4:
                 System.out.println("欢饮进入附件");
                 break;
             default:
                 System.out.println("未查询到呢,请检查输入是否有误");

         }
    }
}

使用switch语句时需要注意以下几点

1、表达式类型可以为byte、char、short、int 、enum类型,并且只能与常量进行比较,如果匹配成功,则执行case子句后面的语句序列。

2、每个case后面的常量表达式的值必须互不相同

3、一个case后可有多个语句(不必使用花括号),程序自动顺序执行case后面的语句;一个case后面也可以没有任何语句

4、每个case后面的常量表达式只起语句标号的作用,每执行完一个case后面的语句后,程序会不加判断的自动执行下一个case后面的语句。所以,执行完一个case分之后,需要使用break语句跳出switch语句,终止switch语句的执行

5、default 子句可选。当表达式的值与任何case子句中的常量都不匹配时,程序执行default子句后面的的语句序列,若无default子句,则程序退出switch语句

4、循环语句

循环语句用于反复执行一个语句块,知道满足终止循环的条件时为止。

一个循环一般包含以下三个部分

1、初始换部分:设置初始换条件,一般只执行一次

2、终止部分:设置终止条件,他应该时一个布尔表达式,每次循环都要求值一次,用以判断是否满足终止条件

3、循环体部分:被反复执行的语句块

java语言提供4种循环结构:当型循环、直到型循环、for循环、for each循环

4.1、while 语句

作用:实现“当型”循环结构

格式:while (<表达式>)

                语句

说明:1、表达式称为循环条件表达式,一般为关系表达式,必须用“()”括起来

           2、语句称为循环体,可以是单个或复合语句

执行过程:先计算表达式的值,当表达式的值为TRUE时,重复执行执行指定的语句;当表达式的值为FALSE,结束循环。

import java.util.Scanner;
public class while_statement {
    public static void main(String[] args){
        Scanner src = new Scanner(System.in);
        int i,n,sum;
        System.out.println("请输入一个整数:");
        n = src.nextInt();
        sum=0;
        i=1;
        while(i<=n){
            sum=sum+i;
            i++;
        }
        System.out.println("和是:"+sum);

    }
}

4.2、do ……while 语句

1、作用:实现“直到型”循环结构

2、格式:

do
    <语句>
while(<表达式>);

import java.util.Scanner;
public class do_while_statement {
    public static void main(String[] args){
        Scanner sr = new Scanner(System.in);
        int i,n,sum;
        System.out.println("请输入一个整数:");
        n=sr.nextInt();
        sum=0;
        i=1;
        do{
            sum=sum+i;
            i++;
        }while(i<=n);
        System.out.println("和是:"+sum);
    }
}

说明:

1、表达式称为循环条件表达式,一般为关系表达式或逻辑表达式,必须用“()”括起来;

2、语句称为循环体,可以是单个语句或复合语句

3、do……while 语句以分号结束

3、执行规程:先执行语句,然后计算表达式的值,当表达式的值为TRUE时,就重复执行语句;直到表达式的值为FALSE才结束循环

5、for 语句

1、for 语句格式

for(<表达式1>;<表达式2>;<表达式3>)
            <语句>
public class for_statement {
    public static void main(String[] args)
    {
        int a;
        for (a=0;a<10;a++){
            System.out.println(a);
        }

    }
}

 

 

说明:

1、表达式1称为循环初始化表达式,通常为赋值表达式,简单情况下为循环变量赋值

2、表达式2称为循环条件表达式,通常为关系表达式或逻辑表达式,简单情况下为循环结束条件

3、表达式3称为循环增量表达式,通常为赋值表达式,简单情况下为循环变量增量

4、语句部分为循环体,他可以时单个或复合语句

for 语句的执行过程

1、计算表达式1的值

2、计算表达式2的值,若表达式2的值为真时,则转到3;若表达式2的值为假时,则结束循环

3、执行循环体语句

4、计算表达式3的值,返回2 继续执行

for语句可以和下列while语句等效

<表达式1>;
while(<表达式2>){
    <语句>
    <表达式3>;
public class for_equivalent {
    public static void main(String[] args){
        int a=0;
        while(a<5){
            System.out.println(a);
            a++;
        }
    }
}

 

6、跳转语句

语句默认都是根据其在程序中的先后次序,从主函数开始,依次执行各个语句。当要改变程序执行的顺序,既不依次执行紧跟其后的语句,而跳到另一个语句处接着执行

6.1、break 语句

1、作用:终止switch语句与单循环语句的执行

                对多重循环语句,可从内循环体调到外循环体

2、格式:break;

import java.util.Scanner;
public class break_statement {
    public static void main(String[] args){
        int a;
        Scanner sr = new Scanner(System.in);
        System.out.println("请输入一个正整数(1-6):");
        a=sr.nextInt();
        switch(a){
            case 1:
                System.out.println("1");//使用break语句,执行完满足的语句,自动跳出循环
                break;
            case 2:
                System.out.println("2");
                break;
            case 3:
                System.out.println("3");
                break;
            case 4:            //不使用break语句,后面的语句无论是否满足,都会执行,直到跳出或结束循环
                System.out.println("4");
            case 5:
                System.out.println("5");
                break;
            case 6:
                System.out.println("6");
        }
    }
}

 

6.2、continue 语句

1、作用:1、在while或do……while 语句中执行到continue语句时,程序不执行continue后的语句,而转向条件表达式处,开始下一次循环,即所谓的短路语句

2、在for语句中执行到continue语句时,程序不执行continue后的语句,而转向for语句中的第3表达式处,开始下一次循环

2、格式:continue;

public class continue_statement {
    public static void main(String[] args){
        for(int a=0;a<10;a++){
            if(a%2==0){                 //当参数为偶数时,跳出本次循环,进行下一次循环
                continue;
            }
            System.out.println(a);
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值