Java学习三—流程控制

一、流程控制简介

1996年,计算机科学家Bohm和Jacopini证明了:任何简单或复杂的算法都可以由顺序结构、分支结构 和循环结构这三种基本结构组合而成。它们的共同点是都包含一个入口和一个出口,它们的每个代码都有机会被执行,不会出现死循环。

在 Java 中,流程控制主要通过条件语句(if、else if、else)、循环语句(for、while、do-while)、以及跳转语句(break、continue、return)来实现。

二、流程控制分类

2.1顺序控制

顺序结构是一种基本的控制结构,它按照语句出现的顺序执行操作。程序由上向下执行。

Java学习三—流程控制

示例

public class Test{
        int num1 = 12;
        int num2 = num1 + 2;
}//java中定义成员变量时采用合法的向前引用。

2.2分支控制(if,else,switch)

分支结构又被称为选择结构,根据条件成立与否来执行操作。

2.2.1单分支(if)

Java学习三—流程控制

示例

Java学习三—流程控制

package com;

import java.util.Scanner;

public class If01 {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入年龄");
        int age=scanner.nextInt();
        if(age>18){
            System.out.println("你年龄大于18,要为自己的行为负责");

        }
        System.out.println("程序继续》》》");

    }
}

2.2.2双分支(if-else)

Java学习三—流程控制

示例

Java学习三—流程控制

2.2.3多分支

Java学习三—流程控制

示例

Java学习三—流程控制


package com;

import java.util.Scanner;

public class If02 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入信用分");
        int score = scanner.nextInt();

        //先对信用分判断,1-100
        if(score>=1&&score<=100) {

            if (score == 100) {
                System.out.println("信用极好");
            } else if (score > 80 && score <= 99) {
                System.out.println("信用优秀");
            } else if (score >= 60 && score <= 80) {
                System.out.println("信用一般");
            } else {
                System.out.println("信用不及格");
            }
        }else {
            System.out.println("输入分数有误,请重新输入");
        }

    }
}

2.2.4switch

switch 语句是一种多分支的流程控制语句,用于根据表达式的值选择性地执行不同的代码块

switch 语句的基本结构如下:


switch (expression) {
    case value1:
        // 当 expression 等于 value1 时执行的代码块
        break;
    case value2:
        // 当 expression 等于 value2 时执行的代码块
        break;
    // 可以有更多的 case 分支
    default:
        // 当 expression 与所有 case 值都不匹配时执行的代码块
}

switch 语句的各个部分:

  1. 表达式:在 switch 后面的括号中指定一个表达式,其值会与各个 case 的值进行比较。

  2. case 分支:每个 case 关键字后面跟着一个常量值(value1、value2 等),表示此分支的条件。如果表达式的值等于某个 case 的值,则执行该 case 分支中的代码块。

  3. 代码块:每个 case 分支中的代码块定义了当表达式的值与相应的 case 值匹配时要执行的操作。

  4. break 语句:每个 case 分支末尾通常使用 break 语句来结束当前分支的执行,并跳出 switch 语句。如果忽略 break,程序会继续执行下一个 case 中的代码块,直到遇到 break 或 switch 语句结束。

  5. default 分支:如果表达式的值与所有 case 的值都不匹配,则会执行 default 分支中的代码块。default 是可选的,可以在 switch 语句中省略。

  6. 注意事项:在 case 中只能放置常量表达式(如整数、字符或枚举常量),不能是变量或其他复杂表达式。case 中的值必须是唯一的,不允许重复。

1.switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);

2.break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾

 

示例


public class SwitchExample {
    public static void main(String[] args) {
        int day = 3;

        switch (day) {
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期日");
                break;
            default:
                System.out.println("未知日期");
        }
    }
}


public class SwitchTest {
    public static void main(String args[]) {
        int i = 1;
        switch (i) {
        case 0:
            System.out.println("one");
            break;
        case 1:
            System.out.println("two");
            break;
        default:
            System.out.println("other");
            break;
        }
    }
}

Java学习三—流程控制

Java学习三—流程控制


package com;

import java.util.Scanner;

public class Switch01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个字符(a-g)");

        char c1 = scanner.next().charAt(0);
        switch (c1){
            case 'a':
                System.out.println("星期一");
                break;
            case 'b':
                System.out.println("星期二");
                break;
            case 'c':
                System.out.println("星期三");
                break;
            case 'd':
                System.out.println("星期四");
                break;
            case 'e':
                System.out.println("星期五");
                break;
            case 'f':
                System.out.println("星期六");
                break;

            default:
                System.out.println("其它都是星期天");
        }


    }
}

2.2.5switch和if的选择

Java学习三—流程控制

2.3循环控制(for,while,dowhile,多重循环)

2.3.1for循环

for 循环是一种常用的循环结构,用于重复执行特定的代码块直到指定的条件不再满足为止。

for 循环的基本结构如下:


for (initialization; condition; update) {
    // 循环体:要重复执行的代码块
}

上述结构各部分的解释:

  1. 初始化表达式(initialization):在进入循环之前进行一次性的初始化操作,通常用于声明计数器变量或初始化循环需要的变量。

  2. 循环条件(condition):每次循环迭代开始前都会检查该条件。只有当条件为 true 时,循环体内的代码才会被执行;当条件为 false 时,循环将终止。

  3. 更新表达式(update):在每次循环迭代结束后执行的操作,通常用于更新计数器变量或修改循环需要的变量,以便控制循环何时结束。

  4. 循环体:由花括号包裹的代码块,其中包含了需要重复执行的代码。

示例


public class ForLoopExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            System.out.println(i);
        }
    }
}

循环的初始化表达式将变量 i 初始化为 1,循环条件为 i <= 5,表示只要 i 的值不超过 5,循环就会继续执行。在每次循环迭代结束后,更新表达式 i++i 的值增加 1。

当程序运行时,for 循环将会依次打印出数字 1、2、3、4、5。


public class ForLoop {
    public static void main(String args[]) {
        int result = 0;
        for (int i = 1; i <= 100; i++) {//1.初始化部分 2.循环条件部分 3.迭代部分
            result += i;//循环体部分
        }
        System.out.println("result=" + result);
    }
}

Java学习三—流程控制

2.3.2while循环

while 循环是一种常用的循环结构,它会重复执行某个代码块,直到指定的条件为假为止。

while 循环的基本结构如下:


while (condition) {
    // 循环体:要重复执行的代码块
}

以下是对上述结构各部分的解释:

  1. 循环条件(condition):在每次循环迭代开始前都会检查该条件。只有当条件为真时,循环体内的代码才会被执行;当条件为假时,循环将终止。

  2. 循环体:由花括号包裹的代码块,其中包含了需要重复执行的代码。

示例


public class WhileLoop {
    public static void main(String args[]) {
        int result = 0;
        int i = 1;//1.初始化部分
        while (i <= 100) {//循环条件
            result += i;//循环体部分
            i++;//迭代部分
        }
        System.out.println("result=" + result);
    }
}

Java学习三—流程控制


package com;

public class While01 {
    public static void main(String[] args) {
        int i=1;
        while (i<11){
            System.out.println("你好"+i);
            i++;
        }
        System.out.println("退出循环");
    }
}

2.3.3do-while

do-while 循环是一种循环结构,它先执行一次循环体中的代码,然后检查循环条件,只有在条件为真时才会继续执行下一次循环。

do-while 循环的基本结构如下:


do {
    // 循环体:要重复执行的代码块
} while (condition);

以下是对上述结构各部分的解释:

  1. 循环体:由花括号包裹的代码块,其中包含了需要重复执行的代码。

  2. 循环条件(condition):在每次循环迭代结束后检查该条件。只有当条件为真时,循环将继续执行;当条件为假时,循环终止。

注意:while与do…while的区别

  1. while: 先判断 再执行 条件不成立 循环体 一遍都不执行

  2. do…while: 先执行 再判断 条件不成立 循环体 至少执行一遍

示例


public class DoWhileLoop {
    public static void main(String args[]) {
        int result = 0, i = 1;//初始化部分
        do {
            result += i;//循环体部分
            i++;//迭代部分
        } while (i <= 100);//循环条件部分
            System.out.println("result=" + result);
        }
}

Java学习三—流程控制

2.4特殊关键字

2.4.1break

break语句用于终止某个语句块的执行

跳出循环


public class BreakTest{
        public static void main(String args[]){
        for(int i = 0; i<10; i++){ 
            if(i==3)
              break;//当条件成立时,终止for循环
            System.out.println(" i =" + i);
        }
        System.out.println("Game Over!");
        }
}

2.4.2continue

continue只能使用在循环结构中

continue语句用于跳过其所在循环语句块的一次执行,继续下一次循环


public class ContinueTest {
    public static void main(String args[]){
         for (int i = 0; i < 100; i++) {
              if (i%10==0)
                    continue;//跳出成立的循环
              System.out.println(i);
          }  
    }  
} 

2.4.3return

return 语句用于从方法中返回值,并终止该方法的执行。

1.return:并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。

2.与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内


public class ReturnExample {
    public static void main(String[] args) {
        int num1 = 5;
        int num2 = 3;
      
        int sum = calculateSum(num1, num2);
      
        System.out.println("The sum of " + num1 + " and " + num2 + " is: " + sum);
    }
  
    public static int calculateSum(int a, int b) {
        int sum = a + b;
        return sum; // 返回 a 和 b 的和
    }
}

在上面的示例中,定义了一个 calculateSum() 方法,接受两个整数参数 ab,并返回它们的和。在方法中,我们计算了 ab 的和,并通过 return 语句返回这个和。

main 方法中,调用 calculateSum() 方法,并将返回的结果赋值给 sum 变量。最后,我们打印出这两个整数的和。

请注意,一旦 return 语句被执行,方法将立即返回,并且任何位于 ==return== ==后面的代码将不会


原文始发于微信公众号(技海拾贝):Java学习三—流程控制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/295430.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!