Java学习笔记2.4.1 选择结构 - 单分支结构
Posted howard2005
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习笔记2.4.1 选择结构 - 单分支结构相关的知识,希望对你有一定的参考价值。
文章目录
零】本讲学习目标
- 了解结构化程序设计原则
- 掌握顺序结构的程序
- 掌握单分支结构的使用
一、结构化程序设计
(一)结构化基本原则
1、自顶向下
- 程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
2、逐步求精
- 对复杂问题,应设计一些子目标作为过渡,逐步细化。
3、模块化
- 一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。
4、限制使用goto语句
- 在程序比较简单是用goto语句是比较灵活,但是当程序比较复杂时很容易造成程序流程的混乱。利用goto语句对以后的后别人看程序是很难理解。调试程序的过程也会变得很困难。
(二)三种流程控制结构
1、顺序结构(Sequence Structure)
2、选择结构(Selection Structure)
3、循环结构(Loop Structure)
- 循环结构有两种情况
(1)前测试条件循环:先检票后上车(有可能一次循环操作也不执行)
(2)后测试条件循环:先上车后检票(无论如何至少要执行一次循环操作)
二、顺序结构
- 有一个入口和一个出口,按从上向下依的顺序执行各语句。
(一)顺序结构示意图
(二)顺序结构案例演示
案例1、计算三角形面积
package net.hw.lesson06;
import java.util.Scanner;
/**
* 功能:计算三角形面积
* 作者:华卫
* 日期:2020年4月12日
*/
public class Example601
public static void main(String[] args)
// 声明部分
double a, b, c, p, s;
Scanner sc = new Scanner(System.in);
// 输入部分
System.out.print("a = ");
a = sc.nextDouble();
System.out.print("b = ");
b = sc.nextDouble();
System.out.print("c = ");
c = sc.nextDouble();
// 处理部分
p = (a + b + c) / 2;
s = Math.sqrt(p * (p - a) * (p - b) * (p - c));
// 输出部分
System.out.println("s = " + s);
运行程序,查看结果:
但是,如果输入的a,b,c构不成三角形,结果如下:
案例2、求解一元二次方程
package net.hw.lesson06;
import java.util.Scanner;
/**
* 功能:求解一元二次方程
* 作者:华卫
* 日期:2020年4月12日
*/
public class Example602
public static void main(String[] args)
// 声明部分
double a, b, c, delta, x1, x2;
Scanner sc = new Scanner(System.in);
// 输入部分
System.out.print("a = ");
a = sc.nextDouble();
System.out.print("b = ");
b = sc.nextDouble();
System.out.print("c = ");
c = sc.nextDouble();
// 处理部分
delta = b * b - 4 * a * c;
x1 = (-b + Math.sqrt(delta)) / (2 * a);
x2 = (-b - Math.sqrt(delta)) / (2 * a);
// 输出部分
System.out.println("x1 = " + x1);
System.out.println("x2 = " + x2);
运行程序,查看结果:
但是,输入的a,b,c导致了判别式小于零,得不到计算结果。
虽然程序运行没有抛出异常,但是NaN也不是我们想要看到的。
(三)顺序结构小结
- 顺序结构很简单,按照语句书写次序,依次从上往下执行。上述两个案例,大家可以看到,遇到不能求解的情形,就是给出一个NaN的结果,那并不是我们想要的结果。我们需要事先对能否求解进行判断,如果能求解,那么我们就计算给出结果;如果不能求解,我们就给出相应提示,告诉用户不能求解,这样处理,对用户比较友好。怎么根据情况不同来执行不同的操作呢?这就是我们下面要讲的选择结构。
三、选择结构概述
- 在实际生活中经常需要作出一些判断,比如开车来到一个十字路口,这时需要对红绿灯进行判断,如果前面是红灯,就停车等候,如果是绿灯,就通行。Java中有一种特殊的语句叫做选择结构语句,它也需要对一些条件作出判断,从而决定执行哪一段代码。
- 程序发生分支,根据判断框内的条件是否被满足来选择执行一块还是执行 B 块。无论条件是否被满足,只能选择执行一或 B 中之一,不能执行完一块后又执行 B 块无论走哪条路径,都要经过 C 点,然后脱离本选择结构框。
- 根据处理不同情况的个数,我们下面分成单分支结构、双分支结构与多分支结构来进行讲解。
四、单分支结构
(一)语法格式
if (条件)
语句组
- 说明:如果语句组只是一条语句,那么花括号是可以省略的。
(二)执行情况
- 如果条件成立,就执行语句组,否则啥也不做。
(三)案例演示
任务1、判断一个数是否是偶数
package net.hw.lesson06;
import java.util.Scanner;
/**
* 功能:判断奇偶数
* 作者:华卫
* 日期:2020年4月12日
*/
public class Example603
public static void main(String[] args)
// 声明部分
int n;
Scanner sc = new Scanner(System.in);
// 输入部分
System.out.print("n = ");
n = sc.nextInt();
// 处理部分 + 输出部分
if (n % 2 == 0)
System.out.println(n + "是一个偶数。");
运行程序,查看结果:
单分支结构经常会嵌套在循环结构里,起一个过滤的作用,比如要对某个范围里满足什么条件的数进行处理。
任务2、筛选某个范围内满足条件的数
- 输出1~100之间能被3或5整除的数,要求每行输出5个数。
以上是关于Java学习笔记2.4.1 选择结构 - 单分支结构的主要内容,如果未能解决你的问题,请参考以下文章