Java入门系列-08-选择结构

这篇文章为你搞懂2个问题

  1. if-else选择结构的使用?
  2. switch 的使用?

前面我们学习的代码都是直上直下的执行,还不会“拐弯”,这篇文章带大家来看一下会“拐弯”的代码——选择结构,顾名思义就有选择性的执行代码。

if-else 选择结构

简单if结构

只有一种执行情况,表达式结果为true时执行结构内代码片段,为false时不执行

语法:

if(表达式){
    代码片段
}

敲一敲:

import java.util.Scanner;

public class DemoIf {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);//创建扫描器
        System.out.println("请输入你的年龄:");
        int age=input.nextInt();
        if(age>=18){
            System.out.println("你已经成年了!");
        }
        System.out.println("程序结束");
    }
}

如果在控制台输入了一个大于等于18的数,那么表达式中的结果为 true 会输出 “你已经成年了!程序结束” 否则只会输出“程序结束”

if-else 结构

有两个代码段,执行结果只有一个,执行哪个代码段仍然是由 if 中的表达式决定,如果表达的结果为 true 则执行 if 后的代码段,为 false 时执行 else 后面的代码段。

语法:

if(表达式){
    代码段1(表达式为 true 执行)
}else{
    代码段2(表达式为 false 执行)
}

敲一敲:

import java.util.Scanner;

public class DemoIf {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);//创建扫描器
        System.out.println("请输入你的年龄:");
        int age=input.nextInt();
        if(age>=18){
            System.out.println("你已经成年了!");
        }else {
            System.out.println("你还没有成年!");
        }
        System.out.println("程序结束");
    }
}

if-else if 多重选择结构

有多个选择条件,但是执行的结果只有一个。执行时会从上向下逐个检查表达式是否为 true ,如果表达式为 true 执行对应的代码段,并且后面的表达不再检查,如果为 false 会继续向下检查,直到遇到 表达式结果为 true 执行代码段。如果所有的表达式检查一遍后都为false,则执行 else。

语法:

if(表达式1){
    代码段1
}else if(表达式2){
    代码段2
}
……
else{
    所有条件都不满足时执行
}

敲一敲:

import java.util.Scanner;

public class DemoMultipleif {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("请输入你的成绩:");
        int score=input.nextInt();
        if(score>=90) {
            System.out.println("成绩等级为:A");
        }else if(score>=80&&score<90) {
            System.out.println("成绩等级为:B");
        }else if(score>=70&&score<80) {
            System.out.println("成绩等级为:C");
        }else if(score>=60&&score<70) {
            System.out.println("成绩等级为:D");
        }else {
            System.out.println("成绩等级为:E");
        }
    }
}

switch 选择结构

switch 结构和多重 if 的功效是一样的,多重if更适合范围和区间的判断,switch更适合等值判断。

语法:

switch(表达式){
case 常量1:
    代码段1
    break;
case 常量2:
    代码段2
    break;
……
default:
    所有的case都不满足时
    break;
}

switch 中的表达式就是要和多个常量对比的条件,表达式可以是 String(jdk1.7及以上)、byte、short、int、char、枚举类型。case 后面是常量,常量是像 1 ‘a‘这样的数据或者是 final 关键字修饰后的常量类型。多个 case 后的常量不能重复。

敲一敲:

import java.util.Scanner;

public class DemoSwitch {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("输入1-7的数字,查看周一到周日的菜谱:");
        int day=input.nextInt();
        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("输入的数组有误!输入1-7的数字");
            break;
        }
    }
}

break关键字在结构中的作用是中断后面代码的执行,所以在每个case 语句后都有一个break,确保每执行一个case 便不再执行其他 case,但是也有例外可以省略break,编写下面的代码感受一下。

敲一敲:

import java.util.Scanner;

public class DemoNoBreak {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("输入1-7的数字,查看周一到周日的菜谱:");
        int day=input.nextInt();
        switch (day) {
        case 1:
        case 3:
        case 5:
            System.out.println("一、三、五:番茄牛腩");
            break;
        case 2:
        case 4:
            System.out.println("二、四:锅包肉");
            break;
        case 6:
        case 7:
            System.out.println("周六、日:可乐鸡翅");
            break;
        default:
            System.out.println("输入的数组有误!输入1-7的数字");
            break;
        }
    }
}

如果一些case 语句的执行结果都是相同的,那么就可以省略掉break,让代码继续向下执行,直到遇到另一个break。

试一试

  1. 下面代码的运行结果是什么,解释其原因

    public class Question1 {
    public static void main(String[] args) {
        char chr=‘a‘;
        switch (chr) {
        case 96:
            System.out.println(96);
            break;
        case 97:
            System.out.println(97);
            break;
        case 98:
            System.out.println(98);
            break;
        default:
            System.out.println("啥也没有");
            break;
        }
    }
    }
  2. 下面代码的运行结果是什么?为什么会这样?
    public class Question2 {
    public static void main(String[] args) {
        int a=10;
        if(++a>10||++a>11) {
            a++;
        }
        System.out.println("a的结果:"+a);
    }
    }

搜索关注公众号「享智同行」,第一时间获取技术干货 回复"008"获取答案和解析

原文地址:http://blog.51cto.com/13219188/2301542

时间: 2024-11-06 07:01:14

Java入门系列-08-选择结构的相关文章

oracle学习入门系列之五 内存结构、数据库结构、进程

oracle学习入门系列之五 内存结构.数据库结构.进程 上篇蛤蟆简单描述了oracle公司的数据库产品.其他产品及oracle软件的一些特点.干货虽有但是真心是比较少的,这篇开始就是以干货为主,其中夹杂一些扯淡的事情了.蛤蟆一直也在想如何能生动的通过这干巴巴的文字来描述着世界级的软件,太理论大家都看不下去,太实践又缺乏深度.想想自己上大学那会,老师的讲课,无不枯燥乏味啊,满满的兴趣尽是消耗殆尽.所以不能仿效之,我们得走自己特色的路.以最易懂的形式.比喻等手段描述深奥的计算机知识.走起~ 开篇问

(转)Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)

概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理.解决办法) Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列06之 Vector详细介绍(源码解析)和使用示例 Java 集合系列07之 Stack详细

java学习之switch选择结构

学编程吧java学习之switch选择结构发布了,欢迎大家通过xuebiancheng8.com来访问 前面分析了java的流程控制分为选择结构,循环结构,其中选择结构可以分为if选择结构和switch结构.下面我们来分析switch...case结构. switch...case结构也是用来实现选择结构 语法如下: switch(变量){ case 常量1: ...... break; case 常量2: ...... break; default: ...... break; } 语法太抽象

Java 集合系列 08 Map架构

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和

Java基本知识(运算符/选择结构语句/循环结构语句/方法/标识符)

Java基本知识(运算符/选择结构语句/循环结构语句/方法/标识符)一.Java标识符给类.接口.方法等命名的字符序列.1.标识符组成(1)英文字母大小写:(2)数字(不能以数字开头):(3)$和_.2.命名规则常量:每个单次字母均大写,若由多个单词组成,则每个单词间用下划线隔开.变量.方法:第一个单词全部小写,若由多个单词组成,则第一个单词全部小写,从第二个单词开始,每个单词首字母大写其他单词首字母小写.包:所有字母都小写,多级包采用域名反写,每级用"."隔开.类.接口:每个单词首字

java中的if-Switch选择结构

字随笔走,笔随心走,随笔,随心.纯属个人学习分析总结,如有观者还请不啬领教. 1.if选择结构 什么是if结构:if选择结构是根据判断结果再做处理的一种语法结构. 起语法是: if(判断条件){ 操作内容 } if又包含if-else & 多重if和嵌套if 三种. if-else类型 嵌套if 多重if if(判断条件){ if(判读条件){ if(判读条件){ 操作内容 if(判读条件){ 操作内容 }else{ 操作内容 }else if{ 操作内容 } 操作内容 } } }else{ 操

【转】Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)

概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理.解决办法) Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列06之 Vector详细介绍(源码解析)和使用示例 Java 集合系列07之 Stack详细

java的两种选择结构

选择结构: If结构: 结构: if(){: //功能语句 }else if(){ //功能语句 }else if(){ //功能语句 }else{//其他情况都不成立的之后执行 //功能语句 } 特点: 1.if结构独立的写开,相互之间没有影响会按照顺序依次判断并执行 2. if链式结构,if之间是相互互斥的,当其中一个执行了,条件判断成功了,if结构就结束了 注意事项: If结构如果不写结构体,那么只会控制if结构的第一句是否执行 Switch结构: 结构写法: switch(值变量表达式)

Java 第三章 选择结构

第三章   选择结构 if基本语法: if(条件){// 表达式 // 代码块 } eg: int a = 10; if(a > 1){ System.out.println("内容"); } if(){ // 代码块}else{ // 代码块}eg:if(score >= 90){ System.out.println("奖励Mp4一个");}else{ System.out.println("枪毙");} 语法:if(条件){ /