首页 > 编程语言 >【Java 分支语句详解 之 If 】

【Java 分支语句详解 之 If 】

时间:2024-09-09 22:55:07浏览次数:12  
标签:语句 Java Scanner 代码 System else 详解 println out

Java 分支语句详解 之If - else

在这里插入图片描述

在编程过程中,我们经常需要根据不同的条件执行不同的代码块,这种流程控制被称为 分支语句。在 Java 中,常见的分支控制结构有 if-elseswitch。本文将详细介绍 if 分支结构的使用方法以及相关的代码示例。


一、单分支控制语句 (if)

基本语法:

if (条件表达式) {
    // 执行代码块,当条件表达式为 true 时执行
}

流程图
在这里插入图片描述

说明:
当条件表达式为 true 时,执行代码块;如果为 false,则不执行代码块。如果代码块中只有一条语句,可以省略大括号 {}


示例:

import java.util.Scanner;

public class If01 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入你的年龄:");
        int age = in.nextInt();
        
        if (age >= 18) {
            System.out.println("小伙子好好学习,不然以后出去要搬砖哈~");
        }
    }
}

在这个例子中,程序会根据用户输入的年龄来判断是否输出提示语。只有当年龄大于等于 18 岁时,才会输出 “小伙子好好学习”。


二、双分支控制语句 (if-else)

基本语法:

if (条件表达式) {
    // 执行代码块1,当条件为 true 时执行
} else {
    // 执行代码块2,当条件为 false 时执行
}

在这里插入图片描述

说明:
if 语句用于条件判断,如果条件表达式为 true,则执行 if 块中的代码;否则,执行 else 块中的代码。

示例:

import java.util.Scanner;

public class If02 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入年龄:");
        int age = in.nextInt();
        
        if (age >= 18) {
            System.out.println("你已经满十八岁,不努力就去搬砖。");
        } else {
            System.out.println("你还小,好好学习~");
        }
        
        System.out.println("程序继续运行。。。");
    }
}

这个例子展示了双分支控制。程序根据年龄输出不同的提示语,并且无论哪个分支执行,程序最后都会输出 “程序继续运行”。


三、多分支控制语句 (if-else if-else)

基本语法:

if (条件表达式1) {
    // 执行代码块1
} else if (条件表达式2) {
    // 执行代码块2
} else {
    // 执行代码块n
}

在这里插入图片描述

说明:
多分支控制语句用于处理多个条件,每个条件依次判断,直到找到一个满足条件的分支并执行其代码块。如果所有条件都不满足,执行 else 中的代码。

示例:

import java.util.Scanner;

public class If03 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入您的信用积分:");
        int credit = in.nextInt();
        
        if (credit >= 0 && credit <= 100) {
            if (credit == 100) {
                System.out.println("你的信用等级:信用极好!");
            } else if (credit > 80) {
                System.out.println("你的信用等级:信用优秀!");
            } else if (credit >= 60) {
                System.out.println("你的信用等级:信用一般!");
            } else {
                System.out.println("你的信用等级:信用不及格!");
            }
        } else {
            System.out.println("输入有误,请重新输入!!!");
        }
    }
}

这个程序根据用户输入的信用积分来判断信用等级。每个信用等级有相应的分数区间,程序会根据不同的分数输出相应的信用等级。


四、嵌套分支控制语句

基本语法:

if (条件表达式1) {
    if (条件表达式2) {
        // 执行代码块1
    } else {
        // 执行代码块2
    }
} else {
    // 执行代码块n
}

在这里插入图片描述

说明:
在一个 ifelse 分支中再嵌套 if-else 语句。注意不要嵌套太多层,避免代码过于复杂。

示例:

import java.util.Scanner;

public class NestedIf {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入您的所得分数:");
        double score = in.nextDouble();
        
        if (score > 8.0) {
            System.out.println("请输入您的性别(男/女):");
            char gender = in.next().charAt(0);
            
            if (gender == '男') {
                System.out.println("成功晋级,男子组!");
            } else if (gender == '女') {
                System.out.println("成功晋级,女子组!");
            } else {
                System.out.println("输入的性别无效!");
            }
        } else {
            System.out.println("很遗憾,您未能晋级。");
        }
    }
}

这个例子展示了嵌套分支的使用,根据用户输入的分数和性别,决定用户是否晋级以及晋级的组别。
注意点 .charAt(0): 这是一个 String 类的方法,用于获取字符串中的第一个字符。charAt(0) 会返回字符串的第一个字符,因此它在这里被用来从 next() 方法返回的字符串中提取第一个字符。


五、示例:出票系统

需求:
根据淡旺季月份和年龄,打印票价:

  • 旺季(4-10 月):成人(18-60 岁)票价为 60 元,儿童半价,老人三分之一价格。
  • 淡季:成人票价为 40 元,儿童和老人票价为 20 元。

示例代码:

import java.util.Scanner;

public class TicketSystem {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入购票月份:");
        int month = in.nextInt();
        
        System.out.println("请输入您的年龄:");
        int age = in.nextInt();

        // 检查月份是否合理
        if (month < 1 || month > 12) {
            System.out.println("无效的月份,请输入1到12之间的月份。");
            return;
        }

        // 旺季 4-10 月
        if (month >= 4 && month <= 10) {
            if (age >= 18 && age <= 60) {
                System.out.println("你的票价为 60 元");
            } else if (age < 18) {
                System.out.println("你的票价为 30 元(儿童票)");
            } else {
                System.out.println("你的票价为 20 元(老人票)");
            }
        } else { // 淡季
            if (age >= 18 && age <= 60) {
                System.out.println("你的票价为 40 元");
            } else {
                System.out.println("你的票价为 20 元");
            }
        }
    }
}

这个例子展示了如何根据月份和年龄判断票价,程序会根据用户输入的月份和年龄来决定输出不同的票价。


六、常见错误

等号 == 与赋值符号 = 的区别:

在条件判断中,常见的错误是将比较符号 == 误写为赋值符号 =。例如:

boolean b = true;

if (b = false) {
    System.out.println("a");
} else if (b) {
    System.out.println("b");
} else if (!b) {
    System.out.println("c");
} else {
    System.out.println("d");
}

在这段代码中,if(b = false) 是将 b 赋值为 false,因此输出会是 “c”。这个错误很常见,应当特别注意。


七、总结

分支语句是控制程序执行流程的重要工具。通过合理使用 if-else 和嵌套分支,可以让程序根据不同的条件执行不同的操作,极大地增强了程序的灵活性。注意在分支语句中合理组织条件,避免过多的嵌套,提高代码的可读性和维护性。
在这里插入图片描述

标签:语句,Java,Scanner,代码,System,else,详解,println,out
From: https://blog.csdn.net/Yhame/article/details/142070971

相关文章

  • Java反射
    Java反射在Java编程世界中,反射(Reflection)是一个强大而复杂的特性,它允许程序在运行时检查或修改其自身结构(如类、接口、字段和方法等)的行为。反射API提供了丰富的功能,使得Java程序能够在编译时不知道具体类型的情况下,动态地创建对象、调用方法、访问和修改字段等。尽管反射......
  • (java+Seleniums3)自动化测试实战
    一.web自动化测试基础密码的加密处理--是在前端JavaScript二.seleniumIDE录制打开火狐浏览器:点击寻找更多附加组件输入:选择:跳转:点击安装完成,打开之后是这个页面:录制一个新的测试用例在一个新的工程当中:点击第一个表示正在录制成功:三.......
  • 深入理解 Java 枚举类型及其定义步骤
    深入理解Java枚举类型及其定义步骤1.枚举概述在Java中,enum(枚举)是用来定义一组固定的常量集合的类型。与普通类不同,枚举类型通过简单而清晰的语法结构,使得代码更具可读性,尤其适用于那些值在编译时就固定的场景,例如星期、方向、季节等。枚举不仅仅是常量的集合,还可以拥有字......
  • 2-6Java抽象类
    Java抽象类在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和......
  • Java 结合vue 和 阿里 写一个短信验证码功能
    要实现一个基于Java、Vue和阿里云的短信验证码功能,需要完成几个步骤。这个功能通常包括前端(Vue.js)和后端(JavaSpringBoot)部分,以及阿里云短信服务的集成。以下是一个大致的实现步骤:前提条件阿里云账户:需要有一个阿里云账户,并开通了短信服务。Java开发环境:确保有Java开发环境和......
  • 零基础用python开发btc(二bitcoinlib详解)
    bitcoinlib是一个用于Python的比特币库,支持比特币和其他加密货币的生成、交易和管理。以下是如何在Windows、macOS或Linux上安装和使用bitcoinlib的详细教程。1.安装Python首先,确保你安装了Python3.x,并且已配置了pip(Python的包管理工具)。可以在终端中运行以下......
  • 解锁Python中的人脸识别:Face Recognition库详解与应用
    在当今的人工智能时代,人脸识别技术已经成为了计算机视觉领域的一项重要应用。无论是在安全监控、社交媒体还是智能设备中,人脸识别都扮演着不可或缺的角色。在众多的人脸识别工具和库中,Python的FaceRecognition库以其简单易用和高效性而备受青睐。本文将深入探讨FaceRecogniti......
  • 微信小程序开发系列5----页面配置--WXML列表渲染-wxkey详解
        下图本来选中Switch1更新后选中的是Switch5了  使用下图红色部分就能解决,id是data里定义的换name也可以,红色部分不能写item.Id 注:不给wx:key会给一个警告,给了性能会更高 源码获取方式(免费):(1)登录-注册:http://resources.kittytiger.cn/(2)签到获取积分(3)搜索......
  • JavaScript知识点轻量版(一)
                                   【学习重点】1.了解JavaScript基础知识2.熟悉常量和变量3.能够使用表达式和运算符4.正确使用语句5.能够掌握数据类型和转换的基本方法6.正确使用函数,对象,数组等核心知识......
  • Web安全之CSRF攻击详解与防护
    在互联网应用中,安全性问题是开发者必须时刻关注的核心内容之一。跨站请求伪造(Cross-SiteRequestForgery,CSRF),是一种常见的Web安全漏洞。通过CSRF攻击,黑客可以冒用受害者的身份,发送恶意请求,执行诸如转账、订单提交等操作,导致严重的安全后果。本文将详细讲解CSRF攻击的原......