Java从入门到精通-流程控制(一)

简介: Java从入门到精通-流程控制(一)

流程控制

1.复合语句

复合语句,也称为代码块,是一组Java语句,用大括号 {} 括起来,它们可以被视为单个语句。复合语句通常用于以下情况:

- 在控制结构(如条件语句和循环)中包含多个语句。

- 在方法中定义局部变量的作用域。

示例1:

public class IfStatementExample {
    public static void main(String[] args) {
        int number = 5;
        if (number > 0) {
            System.out.println("这个数是正数");
        }
        // 如果条件为假,代码块将被跳过
        if (number < 0) {
            System.out.println("这个数是负数");
        }
    }
}

在示例1中,我们使用了一个复合语句来计算 z 的值,并在复合语句内部打印它。需要注意的是,z 变量的作用域仅限于复合语句内部,在复合语句外部无法访问。复合语句是组织代码并控制变量作用域的重要工具,你将在编写Java程序时经常遇到它们。

2.条件语句

条件语句是Java编程中的关键元素之一,它允许根据不同的条件执行不同的代码块。在这一部分,我们将探讨两种常见的条件语句:if 条件语句和 switch 多分支语句。

2.1 if条件语句

if 条件语句允许你根据一个条件来执行代码块。如果条件为真,代码块将被执行;如果条件为假,代码块将被跳过。

public class IfStatementExample {
    public static void main(String[] args) {
        int number = 5;
        if (number > 0) {
            System.out.println("这个数是正数");
        }
        // 如果条件为假,代码块将被跳过
        if (number < 0) {
            System.out.println("这个数是负数");
        }
    }
}

在示例2中,我们首先检查 number 是否大于0,如果是,则打印 "这个数是正数"。然后,我们检查 number 是否小于0,但由于条件不满足,第二个 if 代码块被跳过。

除了基本的 `if` 语句,还可以使用 `else` 和 `else if` 来处理多个条件。

示例3:判断数字正、负:

public class ElseIfStatementExample {
    public static void main(String[] args) {
        int number = 0;
        if (number > 0) {
            System.out.println("这个数是正数");
        } else if (number < 0) {
            System.out.println("这个数是负数");
        } else {
            System.out.println("这个数是零");
        }
    }
}

在示例3中,我们首先检查 number 是否大于0,如果是,打印 "这个数是正数"。如果不是,然后检查是否小于0,如果是,打印 "这个数是负数"。如果两个条件都不满足,就执行 else 代码块。

2.2 switch多分支语句

`switch` 语句是一种多分支条件语句,用于根据表达式的值执行不同的代码块。它通常用于处理多个可能的情况。

示例4:根据星期几打印不同的消息:

public class SwitchStatementExample {
    public static void main(String[] args) {
        int dayOfWeek = 3;
        switch (dayOfWeek) {
            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;
            default:
                System.out.println("周末");
        }
    }
}

在示例4中,我们根据 dayOfWeek 的值执行不同的代码块。使用 break 关键字来结束每个 case 分支,以防止继续执行后续分支。如果没有匹配的分支,将执行 default 代码块。

这就是条件语句的基本概念。它们能够根据不同的条件来控制程序的执行流程。接下来,我们将讨论循环语句。

3.循环语句

循环语句是控制程序重复执行一段代码的关键工具。在Java中,有三种主要的循环语句:while 循环,do...while 循环,和 for 循环。我将逐一介绍它们。

3.1 while循环语句

`while` 循环允许你在条件为真的情况下重复执行一段代码块。它在进入循环之前检查条件。

示例5:使用 while 循环计算1到10的和:

public class WhileLoopExample {
    public static void main(String[] args) {
        int sum = 0;
        int i = 1;
        while (i <= 10) {
            sum += i;
            i++;
        }
        System.out.println("1到10的和为:" + sum);
    }
}

在示例5中,我们初始化 sum 为0,然后使用 while 循环从1加到10。i 用于跟踪当前的数字,每次迭代后增加1。

3.2 do...while循环语句

do...while 循环与 while 循环类似,但它首先执行代码块,然后再检查条件。这意味着无论条件是否为真,代码块至少会执行一次。

示例6:使用 do...while 循环验证用户输入的密码:

import java.util.Scanner;
public class DoWhileLoopExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String password;
        do {
            System.out.print("请输入密码:");
            password = scanner.nextLine();
        } while (!password.equals("12345"));
        System.out.println("密码正确,欢迎进入系统!");
        scanner.close();
    }
}

在示例6中,无论用户输入的密码是否正确,至少会要求用户输入一次密码。

3.3 for循环语句

for 循环是一种灵活的循环,通常用于已知循环次数的情况。它包括初始化、条件和迭代部分。

示例7:使用 `for` 循环输出1到5的数字:

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

在示例7中,使用 for 循环初始化 i 为1,然后在每次迭代后增加1。循环在 i 大于5之前执行。

这些是Java中的常见循环语句。它们允许你有效地重复执行代码块,以完成各种任务。接下来,我们将探讨循环控制语句,包括 break 和 continue。

4.循环控制

循环控制语句允许你更灵活地管理循环的执行流程。在这一部分,我们将介绍两个关键的循环控制语句:break 和 continue。

4.1 break语句

break 语句用于中断循环的执行,无论循环条件是否满足。通常,break 用于在满足某个条件时立即退出循环。

示例8:使用 `break` 来在找到目标值时中断循环:

public class BreakStatementExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        int target = 3;
        for (int num : numbers) {
            if (num == target) {
                System.out.println("找到目标值:" + num);
                break; // 中断循环
            }
        }
    }
}

在示例8中,我们使用 for 循环遍历一个整数数组,当找到目标值 target 时,使用 break 来中断循环,以避免继续迭代。

4.2 continue语句

continue 语句用于跳过当前循环迭代的剩余代码,然后继续下一次迭代。它通常用于处理特定条件下的情况,而不是完全退出循环。

示例9:使用 `continue` 在遇到偶数时跳过输出:

public class ContinueStatementExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            if (i % 2 == 0) {
                continue; // 跳过偶数
            }
            System.out.println(i);
        }
    }
}

在示例9中,当 i 为偶数时,continue 语句将跳过 System.out.println(i); 的执行,然后继续下一次迭代。

break 和 continue 是在循环中控制执行流程的有用工具。它们可以帮助你根据不同的条件中断循环或跳过特定迭代。

5.小结一下

  1. 复合语句是由一组Java语句组成的代码块,通常用大括号 {} 括起来。它们可以用于组织多个语句,也用于限定局部变量的作用域。
  2. 条件语句是用于根据不同条件执行不同代码块的工具。我们介绍了 if 条件语句和 switch 多分支语句。if 允许根据条件执行不同的代码块,而 switch 用于多个可能情况的情况下执行不同的代码块。
  3. 循环语句允许你重复执行一段代码块。我们介绍了 while 循环,do...while 循环和 for 循环。这些循环结构适用于不同的情况,允许你有效地处理已知或未知次数的迭代。
  4. 循环控制语句包括 break 和 continue。break 用于中断循环的执行,而 continue 用于跳过当前迭代的剩余代码。

6.实践练习

条件语句练习:

  • 编写一个程序,接受用户输入的数字,然后判断它是否是偶数或奇数,并输出相应的消息。
  • 创建一个简单的登陆系统,要求用户输入用户名和密码。如果用户名是 "admin" 并且密码是 "password",则显示欢迎消息,否则显示错误消息。
  • 编写一个程序,接受用户输入的年份,然后判断该年份是否为闰年,并输出相应的消息。闰年条件:能被4整除但不能被100整除,或者能被400整除。

循环语句练习:

  • 使用 for 循环打印出1到100的所有奇数。
  • 使用 while 循环找出一个正整数的所有因子。
  • 使用 do...while 循环实现一个猜数字游戏,程序随机生成一个数字,然后提示用户猜数字,直到用户猜中为止。

循环控制语句练习:

  • 使用 break 语句改进上面的猜数字游戏,如果用户连续猜错5次,就自动结束游戏。
  • 使用 continue 语句编写一个程序,打印出1到100的所有数字,但跳过所有包含数字 7 的数字,例如,跳过 7, 17, 27...
  • 创建一个简单的菜单程序,让用户选择不同的选项(例如,1. 添加新项目,2. 查看项目,3. 退出程序)。使用 switch 语句处理用户的选择。

(以上是九个小问题,下次文章回答)

相关文章
|
9天前
|
Java 程序员 UED
Java中的异常处理:从入门到精通
【9月更文挑战第23天】在Java编程的世界中,异常是程序执行过程中不可避免的事件,它们可能会中断正常的流程并导致程序崩溃。本文将通过浅显易懂的方式,引导你理解Java异常处理的基本概念和高级技巧,帮助你编写更健壮、更可靠的代码。我们将一起探索如何捕获和处理异常,以及如何使用自定义异常来增强程序的逻辑和用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和实用的技巧。
28 4
|
2月前
|
算法 Java 开发者
Java 编程入门:从零到一的旅程
本文将带领读者开启Java编程之旅,从最基础的语法入手,逐步深入到面向对象的核心概念。通过实例代码演示,我们将一起探索如何定义类和对象、实现继承与多态,并解决常见的编程挑战。无论你是编程新手还是希望巩固基础的开发者,这篇文章都将为你提供有价值的指导和灵感。
|
2月前
|
存储 Java 程序员
Java中的集合框架:从入门到精通
【8月更文挑战第30天】在Java的世界里,集合框架是一块基石,它不仅承载着数据的存储和操作,还体现了面向对象编程的精髓。本篇文章将带你遨游Java集合框架的海洋,从基础概念到高级应用,一步步揭示它的奥秘。你将学会如何选择合适的集合类型,掌握集合的遍历技巧,以及理解集合框架背后的设计哲学。让我们一起探索这个强大工具,解锁数据结构的新视角。
|
2月前
|
Java 程序员 UED
Java中的异常处理:从入门到精通
【8月更文挑战第28天】在Java编程的世界里,异常处理是一块基石,它确保了程序的健壮性和可靠性。本文将通过深入浅出的方式,带你了解Java异常处理的基本概念、分类、以及如何有效地捕获和处理异常。我们将一起探索try-catch-finally结构的奥秘,并学习如何使用throws关键字声明方法可能会抛出的异常。此外,我们还会讨论自定义异常类的创建和使用,以及最佳实践。无论你是Java新手还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识,帮助你编写出更加稳定和可靠的代码。
|
2月前
|
编解码 网络协议 Oracle
java网络编程入门以及项目实战
这篇文章是Java网络编程的入门教程,涵盖了网络编程的基础知识、IP地址、端口、通讯协议(TCP和UDP)的概念与区别,并提供了基于TCP和UDP的网络编程实例,包括远程聊天和文件传输程序的代码实现。
java网络编程入门以及项目实战
|
21天前
|
Java 程序员
Java中的异常处理:从入门到精通
在Java编程的世界中,异常处理是保持程序稳定性和可靠性的关键。本文将通过一个独特的视角—把异常处理比作一场“捉迷藏”游戏—来探讨如何在Java中有效管理异常。我们将一起学习如何识别、捕捉以及处理可能出现的异常,确保你的程序即使在面对不可预见的错误时也能优雅地运行。准备好了吗?让我们开始这场寻找并解决Java异常的冒险吧!
|
2月前
|
Java 程序员 UED
Java 中的异常处理:从入门到精通
【8月更文挑战第31天】在Java编程的世界中,异常处理是保持应用稳定性的重要机制。本文将引导你理解异常的本质,学会如何使用try-catch语句来捕获和处理异常,并探索自定义异常类的魅力。我们将一起深入异常的世界,让你的代码更加健壮和用户友好。
|
2月前
|
Java 数据库连接 开发者
Java中的异常处理:从入门到精通
【8月更文挑战第31天】 在编程世界中,错误和异常就像是不请自来的客人,总是在不经意间打扰我们的程序运行。Java语言通过其异常处理机制,为开发者提供了一套优雅的“待客之道”。本文将带你走进Java异常处理的世界,从基础语法到高级技巧,再到最佳实践,让你的程序在面对意外时,也能从容不迫,优雅应对。
|
2月前
|
Java 开发者
Java 中的异常处理:从入门到精通
【8月更文挑战第31天】在Java的世界中,异常处理是保持程序健壮性的基石。本文将带你探索Java异常处理的奥秘,从基本的try-catch语句到深入理解自定义异常和最佳实践。你将学会如何优雅地处理错误,确保你的代码不仅能够面对意外情况,还能从中恢复。让我们一起开启这段旅程,掌握让程序更加稳定和可靠的技巧吧!
|
2月前
|
机器学习/深度学习 Java TensorFlow
深度学习中的图像识别:从理论到实践Java中的多线程编程入门指南
【8月更文挑战第29天】本文将深入探讨深度学习在图像识别领域的应用,从基础理论到实际应用案例,带领读者一步步理解如何利用深度学习技术进行图像识别。我们将通过一个简单的代码示例,展示如何使用Python和TensorFlow库实现一个基本的图像识别模型。无论你是初学者还是有一定经验的开发者,都能从中获得启发和学习。 【8月更文挑战第29天】在Java世界里,线程是程序执行的最小单元,而多线程则是提高程序效率和响应性的关键武器。本文将深入浅出地引导你理解Java多线程的核心概念、创建方法以及同步机制,帮助你解锁并发编程的大门。
下一篇
无影云桌面