Java学习笔记2.4.2 选择结构 - 双分支结构
Posted howard2005
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习笔记2.4.2 选择结构 - 双分支结构相关的知识,希望对你有一定的参考价值。
文章目录
零、本讲学习目标
- 了解双分支结构的语法
- 会使用双分支结构解决问题
一、双分支结构概念
- 双分支结构,条件满足时执行一组操作,不满足时执行另一组操作
二、双分支结构使用
(一)语法格式
if (条件)
语句组1
else
语句组2
(二)执行情况
- 双分支结构就是我们通常讲的“花开两朵,各表一枝”或者“鱼和熊掌不可兼得”。语句组1与语句组2,根据条件成立与否,只有其中一个会被执行。
(三)案例演示
任务1、计算三角形面积
提示:两步(判断 + 计算)
(1)利用三边关系定理判断能否构成三角形;
三边关系定理:任意两边之和大于第三边。
(2)如果能构成三角形,利用海伦公式来计算。
三边为
a
,
b
,
c
a, b, c
a,b,c,半周长
p
=
a
+
b
+
c
2
p=\\displaystyle \\fraca+b+c2
p=2a+b+c
面积
a
r
e
a
=
p
(
p
−
a
)
(
p
−
b
)
(
p
−
c
)
area=\\displaystyle \\sqrtp(p-a)(p-b)(p-c)
area=p(p−a)(p−b)(p−c)
package net.hw.lesson06;
import java.util.Scanner;
/**
* 功能:计算三角形面积
* 要判断能否构成三角形
* 作者:华卫
* 日期:2020年4月12日
*/
public class Example604
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();
// 处理部分 + 输出部分
if (a + b > c && b + c > a && c + a > b)
p = (a + b + c) / 2;
s = Math.sqrt(p * (p - a) * (p - b) * (p - c));
System.out.println("s = " + s);
else
System.out.println(a + "、" + b + "、" + c + "无法构成三角形!");
运行程序,查看结果:
问题:判断条件能否换种花样呢?
说明:选择结构的条件是根据海伦公式(被开方数要非负)来确定的。
p
>
a
⇔
a
+
b
+
c
2
>
a
⇔
a
+
b
+
c
>
2
a
⇔
b
+
c
>
a
p>a \\Leftrightarrow \\displaystyle \\fraca+b+c2>a \\Leftrightarrow a+b+c>2a \\Leftrightarrow b+c>a
p>a⇔2a+b+c>a⇔a+b+c>2a⇔b+c>a
p
>
b
⇔
a
+
b
+
c
2
>
b
⇔
a
+
b
+
c
>
2
b
⇔
c
+
a
>
b
p>b \\Leftrightarrow \\displaystyle \\fraca+b+c2>b \\Leftrightarrow a+b+c>2b \\Leftrightarrow c+a>b
p>b⇔2a+b+c>b⇔a+b+c>2b⇔c+a>b
p
>
c
⇔
a
+
b
+
c
2
>
c
⇔
a
+
b
+
c
>
2
c
⇔
a
+
b
>
c
p>c \\Leftrightarrow \\displaystyle \\fraca+b+c2>c \\Leftrightarrow a+b+c>2c \\Leftrightarrow a+b>c
p>c⇔2a+b+c>c⇔a+b+c>2c⇔a+b>c
由此可见,两种判断条件其实是等价的,只是表现形式不同而已。
同学们,将代码修改之后运行,看一看是否能得到相同的运行结果。
大家可以看一下完成同样任务的Python代码:
任务2、解决闰年判断问题
以上是关于Java学习笔记2.4.2 选择结构 - 双分支结构的主要内容,如果未能解决你的问题,请参考以下文章