java选择结构-1

目录

1. 背诵英文单词

2. 预习并回答以下问题

3. 预习并完成编码题

3.1 if 选择结构

3.1.1为什么需要if 选择结构

3.1.2 什么是if选择结构

3.1.3 如何使用 if 选择结构

1. 使用基本的 if 选择结构

2.使用复杂条件下的if选择结构

3.使用if-else选择结构

3.2 技能训练1


本章任务

  • 命令实现幸运抽奖
  • 实现会员信息录入
  • 实现按会员优惠计划进行购物结算
  • 实现会员折扣的计算

本章技能目标

  • 命实现幸运抽奖
  • 实现会员信息录入
  • 实现按会员优惠计划进行购物结算
  • 实现会员折扣的计算

本章简介

上一章我们学习了变量的概念和一些常用的数据类型,主要有intdoublecharStringboolean等。另外,还学习了一些运算符,包括算术运算符赋值运算符关系运算符

       

本章将学习基本的选择结构。在前两章中,我们编写的程序总是从程序入口开始,顺序执行每一条语句,直到执行完最后一条语句结束,但是生活中经常需要进行条件判断,根据判断结果决定是否做一件事情。本章将学习选择结构来解决这样的问题。

对于很多复杂的需求,基本的if条件判断语句也解决不了。因此,本章我们还会学习复杂的选择结构,主要包括多重if选择结构、嵌套if选择结构。在学习的过程中,要理解每种选择结构的语法特点,并体会它们的适用场合,以达到灵活应用的目的。另外,要思考程序中可能发生的异常状况,并对于可能出现的问题进行处理,如输出相应的信息,给用户友好提示。通过对异常状况的考虑和处理,增加程序的健壮性。

预习作业

指导:请按以下步骤预习本章内容:

1. 阅读、学习本章内容。

2. 标注出本章看不懂或存在疑惑的部分。

3. 整理、记录学习中的问题。

4.  熟记本章的英文单词。

1. 背诵英文单词

请在预习时找出下列单词在教材中的用法,了解它们的含义和发音。

(1) if       [ɪf]:conj.(表条件)如果;(表假设)要是,假如;n. 条件,设想;不确定的情况

(2) else     [els]: adv. 其他;否则;另外;adj. 别的;其他的

(3) break    [breɪk]: v. 打破;(机器)失灵;打断

(4) continue [kənˈtɪnjuː]: vi. 继续,延续;仍旧,连续

(5) match    [mætʃ]: (计算机)匹配;配合;搭配;相似的东西;婚姻;配偶

(6) gender   [ˈdʒendər]: n. 性;性别

(7) random   [ˈrændəm]:adj. [数] 随机的;任意的;胡乱的;n. 随意

(8) score    [skɔːr]: n.分数;n. 分数;vi. 得分;记分;

2. 预习并回答以下问题

请阅读本章内容,在作业本上完成以下简答题。

(1) if-else 选择结构的语法和执行顺序是什么?

(2) if 选择结构书写规范有哪些?

(3) 找出下面代码中的错误并更正,然后写出更正后代码的输出结果。

import java.util.Scanner;

public class yuxi {
   
public static void main(String[] args) {
        System.
out.println("请输入整数:");
        Scanner input =
new Scanner(System.in);
       
int num = input.nextInt();
       
if (num>=20)
            num--;
            System.
out.println("num=" + num);
       
else {
            num++;
            System.
out.println("num=" + num);
        }
    }
}

3. 预习并完成编码题

(1) 编写并完成本章中所有示例代码。

(2) 请使用 Java 语言编写代码,完成以下功能。

从键盘上输入自己的年龄,如果大于或等于 18 岁,则输出 "我是成年人了,可以为爸爸妈妈遮风挡雨啦!",否则,输出"我还需要爸爸妈妈的呵护哦厂。

技术内容

3.1 if 选择结构

3.1.1为什么需要if 选择结构

前面提到,在生活中我们经常需要做判断,然后才能够决定是否做某件事情。例如,如果妈妈今天过生曰,你将送给妈妈一份礼物;如果地球上没有了水,人类将濒临灭绝。

现在就用 Java 程序解决下面的问题。

问题:如果张浩的 Java 考试成绩大于 98 分,那么张浩就能获得一个 MP4 作为奖励。

分析:现在已经知道如何编写 “Hello World” 的程序,但是有时需要先判断一下条件,条件满足则输出,条件不满足则不输出。这个问题就需要先判断张浩的 Java 成绩,他的 Java成绩大于 98 分时,才有奖励。对于这种 “需要先判断条件,条件满足后执行” 的程序,需要 if 选择结构来实现。

3.1.2 什么是if选择结构

if 选择结构是根据条件判断之后再做处理的一种语法结构。下面看一下最基本的 if 选择结构的语法。

语法:

  if ( 条件 ) {

      代码块  //条件成立后要执行的代码,可以是一条语句,也可以是一组语句

   }

条件

条件

图 3.1 if 选择结构流程图

图 3.1 是代码的图形化表示,称为流程图。结合流程图来看, if 选择结构的含义和执行过程就一目了然了。图中带箭头的线条表示的是流程线,也就是程序执行的过程。首先,对条件进行判断。如果结果是真,则执行代码块;否则,执行代码块后面的部分。

因此,关键字 if 后小括号里的条件是一个表达式,而且表达式的值必须为 true 或 false。

程序执行时,先判断条件。当结果为 true 时,程序先执行大括号里的代码块,再执行 if 结构(即部分)后面的代码。当结果为 false 时,不执行大括号里的代码块,而直接执行 if 结构后面的代码

下面看一看如下程序如何执行。

public class excample {
   
public static void main(String[] args) {
       
//语句1
       
//语句2
       
if (条件) {
           
//语句3
       
}
       
//语句4
   
}
}

回想第1章和第2章所编写的程序,main()是程序的入口,main()中的语句将逐条顺序地执行,所有的语句都执行完毕后程序结束。因此,程序开始执行后,首先执行语句1和语句2,然后对条件进行判断。如果条件成立,则执行语句3,然后跳出if结构块执行语句4;如果不成立,则语句3不执行,直接执行语句4。

经验:当if关键字后的一对大括号里只有一个语句时,可以省略大括号。但是为了避免有多个语句时遗忘大括号,以及保持程序整体风格一致,建议不要省略if结构块的大括号。

解释:流程图:逐步解决指定问题的步骤和方法的一种图形化表示方法。流程图直观、清晰地帮助我们分析问题或设计解决方案,是程序开发人员的好帮手。流程图使用一组预定义的符号来说明如何执行特定的任务。表3-1为符号汇总。

表3-1符号汇总

图形

意义

图形

意义

程序开始或结束

判断和分支

计算步骤/处理符号

连接符

输入/输出指令

流程线

3.1.3 如何使用 if 选择结构

1. 使用基本的 if 选择结构

使用基本的 if 选择结构解决 3.1.1 节中的问题,代码如示例 1 所示。

示例1

package cn.jbit.ifdemo;
import java.util.Scanner;
public class GetPrize {
   
public static void main(String[] args) {
        Scanner input =
new Scanner(System.in);
        System.
out.print("输入张浩的Java成绩: "); //提示要输入Java成绩
       
int score =  input.nextInt();  //从控制台获取Java成绩
       
if ( score > 90 ) {              //判断是否大于90
           
System.out.println("老师说:不错,奖励一个MP4");
        }
    }
}


这里输入张浩的成绩后,通过判断得知是否大于98分。若大于98,则会输出"老师说:不错,奖励一个MP4!",如图3.2所示;否则,不会输出这句话。通过这个简单的例子,可体会if选择结构先判断后执行的方式。

图 3.2 示例 1 的运行结果

2.使用复杂条件下的if选择结构

问题:如果张浩的 Java 成绩大于 98 分,而且音乐成绩大于 80 分,则老师奖励他;或者如果其Java 成绩等于 100 分,音乐成绩大于 70 分,老师也可以奖励他。

分析:这个问题需要判断的条件比较多,因此需要将多个条件连接起来, Java 中可以使用逻辑运算符连接多个条件。常用的逻辑运算符如表 3-2 所示。

表 3-2 常用逻辑运算符

运算符

汉语名称

表达式

说  明

举  例

&&

与、并且

条件1&&

条件2

两个条件同时为真,贝结果为真;两个条件有一个为假,则结果为假

具有选举权的条件:年满 18 周岁&&中国公民。

两个条件都为真则具有选举权;有一个条件为假,则不具有选举权

||

或、或者

条件1||

条件2

两个条件有一个为真,则结果为

真;两个条件同时为假,则结果为假

从中国去美国的方式:乘飞机||乘船。

两个餅有-十餅为真,緬似去

美国;若都为假贝怯不了美国

!

!条件

条件为真时,结果为假;条件为假时,结果为真

成为优秀软件工程师的条件:!偷懒

现在考虑一下怎么连接问题中的条件,首先抽取问题中的条件。

张浩Java成绩〉98分 并且 张浩音乐成绩〉80分

或者

张浩Java成绩= = 100分 并且 张浩音乐成绩〉70分

提取出了条件,是否可以这样编写条件呢?

第一种写法:

score1>98 && score2>80 || score1==100 && score2>70

第二种写法:

(score1>98 && score2>80) || (score1==100 && score2>70)

其中, scorel 表示张浩的 Java 成绩, score2 表示张浩的音乐成绩。显然第二种写法更清晰地描述了上述问题的条件。

经验:当运算符比较多,无法确定运算符执行的顺序时,可以使用小括号控制。

上述问题的完整代码如示例 2 所示。

示例2

package cn.jbit.ifdemo;

public class GetPrize2 {
   
public static void main(String[] args) {
       
int score1 = 100;    //张浩的Java成绩
       
int score2 = 72;     //张浩的音乐成绩
       
if ((score1>98 && score2>80) || (score1==100 && score2>70)) {
            System.
out.println("老师说:不错,奖励一个MP4");
        }
    }
}


程序运行结果如图 3.3 所示。

图 3.3 示例 2 的运行结果

3.使用if-else选择结构

问题:如果张浩的 Java 成绩大于 98 分,那么老师奖励他一个MP4; 否则老师罚他编码。

分析:与上面的 if 选择结构不同的是,除了要实现条件成立执行的操作以外,还要实现条件不成立时执行的操作。

当然,这个问题可以用两个 if 选择结构来实现,如示例 3 所示。

示例3

package cn.jbit.ifdemo;

public class SimpleIf2 {
   
public static void main(String[] args) {
       
int socre = 91;     //张浩的Java成绩
       
if (score > 98) {
            System.
out.println("老师说:不错,奖励一个MP4");
        }
       
if (score <= 98) {
            System.
out.println("老师说:惩罚进行编码!");
        }
    }
}

使用两个 if 选择结构看起来冗长,实际上有一种语法结构可以更好地解决这个问题,就是 if-else选择结构,表示"如果xx, 就xx; 否则,就xx"。这看起来很像小学时候的造句。使用 Java程序语言编写程序的过程,就是造句的过程,只是不是用汉语造句,而是用 Java 语言造句。

if-else 选择结构的语法如下。

语法:

if 条件){

//代码块1

}else {

//代码块2

}

图 3.4 形象地展示了  if-else 选择结构的执行过程。

按照需求,画出流程图来分析要解决的问题,如图 3.5 所示。

代码块2

代码块1

条件

声明score并赋值

奖MP4

罚编程

score>98?

结束

开始

图 3.4 if-else 选择结构流程图                    图 3.5 画出流程图来分析问题

结合流程图,使用 if-else 选择结构进行编程。改写示例 3 中的代码,如示例 4 所示。

示例4

package cn.jbit.ifdemo;

public class SimpleIf3 {

   
public static void main(String[] args) {
       
int score = 91;
       
if (score > 98) {
            System.
out.println("老师说:奖励一个MP4");
        }
else {
            System.
out.println("老师说:惩罚进行代码!");
        }
    }
}


程序运行结果如图3.6所示。

图 3 6 示例 4 的运行结果

小结:到此为止,需要掌握的 if 选择结构如下:基本的 if 选择结构,只有一个 if 块; if-else 选择结构 , 有 if 块和 else 块。

3.2 技能训练1

上机练习1

指导——升级“我行我素购物管理系统”,实现幸运抽奖

需求说明

  • 商场实行新的抽奖规则:如果会员号的百位数字等于产生的随机数字,则该会员为幸运会员,且实现如下要求。

♦从键盘上接收会员号。

♦使用 if-else 选择结构实现幸运抽奖。


♦  运行结果如图 3.7 和图 3.8 所示。

图 3.7 幸运会员输出结果                         图 3.8 非幸运会员输出结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值