zoukankan      html  css  js  c++  java
  • 控制结构(上)


    控制结构的作用是控制程序中语句的执行顺序,它是结构化程序设计的关键。结构化程序设计的基本原则是“自顶向下,逐步细化”,它大致可分为顺序结构、选择结构、循环结构和跳转结构4种。

    先介绍顺序结构和选择结构。


    1.顺序结构

      顺序结构是最简单、最基本的流程控制。在顺序结构中,只要按照解决问题的顺序写出相应的语句,程序就会自上而下,依次执行每条语句。结构如下:

        语句1:----->语句2------>语句3----->......

    代码:

    public class Test{
    	public static void main(String[] args){
    		int a = 1;
    		int b = 3;
    		int c = a + b;
    		System.out.println("c="+c);
    	}
    }
    

      


    2.选择结构

      java 语言提供了两种基本的选择结构语句:if 语句 和 switch 语句。用这两个语句可以形成4中形式的选择结构。

      1.if 语句

        if 语句是单分支选择结构,它针对某种条件做出相应的处理。if 语句的具体语法格式如下:

    if(条件表达式){
        语句块;
    }
    

      如果条件为真,则执行块内语句;否则将跳过该语句块,直接执行该语句块后面的其他语句。示例如下:

    public class Test{
    	public static void main(String[] args){
    		int x = 10;
    		int y = 5;
    		if(x>y){
    			System.out.println("x>y");
    		}
    		if(x<y){
    			System.out.println("x<y");
    		}
    	}
    }
    

      注:1.if 语句后面不能加分号,否则不管条件是否满足,if语句后的代码块将始终执行。

        2.如果语句块中只有单条语句可以不使用“{}”。

      2.if-else语句

        if-else语句是双分支选择结构。if-else语句用来判定一个条件表达式的值,当值为真时执行一个操作,值为假时执行另一个操作,if-else的语法如下:

    if(条件表达式){
        语句块1;
    }else{
        语句块2;
    }
    

      说明:为真执行语句1,为假执行语句2。示例如下:

    public class Test{
        public static void main(String[] args){
            int x = 10;
            int y = 5;
            if(x>y){
                System.out.println("x>y");
            }else{
                System.out.println("x<y");
            }
        }
    }

      3.if 语句的嵌套

        对于复杂的情况,使用嵌套的if-else语句。语法如下:

    if(条件表达式1){
        语句块1;
    }else if条件表达式2(){
        语句块2;
    }
    ...
    else if(条件表达式n){
        语句块n;
    }else{
        语句块n+1;
    }

    执行过程:某个条件式的值为真,则执行它后面的语句块,其余的被忽略;如果所有的都为假,执行最后一个else后面的语句块。示例如下:

    public class Test{
        public static void main(String[] args){
            int score = 85;
            char grade;
            if(score>=90){
                System.out.println("A+");
            }else if(score>=80){
                System.out.println("A");
            }else if(score>=70){
                System.out.println("B");
            }else if(score>=60){
                System.out.println("C");
            }else{
                System.out.println("D");
            }
        }
    }

      4.switch 开关语句

        当要从多个分支中选择一个分支去执行,虽然可用if 嵌套语句来实现,但当程序中的分支较多时,程序的可读性就会大大降低,这时可以使用switch 语句来实现,它可以清楚地处理多分支选择问题。switch 语句根据测试表达式的值来决定执行多个操作中的哪一个,语法如下:

    switch(){
        case 值1: 语句1;break;
        case 值2: 语句2;break;
        ...
        case 值n: 语句n;break;
       [default:语句块n+1;]
    }

      注:1.switch 后面的测试表达式的类型必须是byte,char,short和int类型

        2.值1到值n必须是和测试表达式类型相同的常量,并且它们的值应该互不相等,否则会出现同一个值有两种火多重执行方式的情况。

        3.case后面的语句块可以不用花括号括起来。

        4.break语句的功能是当程序执行完选中的分支后,可以跳出整个switch语句,如果没有break语句,则程序不会做出任何判断,而去执行他后面的case语句 块,直到碰到break语句或执行完n+1为止。

        5.default语句是可选的。

        6.switch语句并不能代替所有的if嵌套语句。这是因为switch结构的条件是一个值,而if-else结构的条件可以是一个范围。

      switch 开关语句示例如下:

    import java.util.Scanner;                   //导入Scanner包,可以做输入
    public class Test{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个1~7之间的整数");
            int day = sc.nextInt();
            switch(day){
                case1:System.out.println("星期一");break;
                case2:System.out.println("星期二");break;
                case3:System.out.println("星期三");break;
                case4:System.out.println("星期四");break;
                case5:System.out.println("星期五");break;
                case6:System.out.println("星期六");break;
                case7:System.out.println("星期日");break;
                default:System.out.println("星期八");
            }
        }
    }

      还可合并case值,示例如下:

                  switch(month){
                case1:
                case3:
                case5:
                case7:
                case8:
                case10:
                case12:
                    System.out.println("31天");
                    break;
                case4:
                case6:
                case9:
                case11:
                    System.out.println("30天");
                    break;
                case2:
                    System.out.println("28或29天");
                default:
                System.out.println("输错了!!!");
            }

        

  • 相关阅读:
    error:undefined reference to 'net_message_processor::net_message_processor()'
    android 网络检测
    eclipse 安装 ndk 组件
    eclipse下编译cocos2dx 3.0
    Cocos2dx3.0 TextField 输入中文的问题
    记录与骗子进行的一次交锋. 与技术无关
    关于继承的设计
    kubernetes1.5.2--部署dashboard服务
    kubernetes1.5.2--部署DNS服务
    kubernetes1.5.2集群部署过程--安全模式
  • 原文地址:https://www.cnblogs.com/xiaonanman/p/6675871.html
Copyright © 2011-2022 走看看