5.0_[Java 流程控制]-初识 if 判断语句

##################################################

目录

if 判断语句组合

判断与条件表达式

单 if 语句

单 if 多判断选择结构

if-else 选择结构

多重 if 选择结构

嵌套 if 选择结构

关于多重 if 结构的顺序问题

更改前后顺序测试


##################################################

if 判断语句组合

——————————

判断与条件表达式

%%%%%

        if 选择结构是根据条件判断之后再做处理的一种语法结构

        if 翻译成思想就是:

如果。。

就。。

        在前面我曾在代码中用过 if 语句
        很简单好玩的

        if-else 抽象一下便是:

如果。。怎么怎么样
就。。怎么怎么样

不然就。。怎么怎么样

        单 if 选择结构:

处理 单一/组合 的条件的情况

        if - else 选择结构:

处理 简单 的条件分支情况

        多重 if 选择结构:

可以处理 连续区间 的条件分支情况

        嵌套 if 选择结构:

可以处理 复杂 的条件分支情况

%%%%%

        条件表达式就是条件表达式啊……

        如果最后条件表达式的值为 true 则执行 if 代码块

        如果表达式的值为 false 则执行 else 代码块

        条件表达式 一般都是需要逻辑运算符的:

运算符    说明    表达式    说明              
&&    与、并且、和    条件_1 && 条件_2    所有条件为真 结果真&有一个为假 结果假
||    或、或者    条件_1 || 条件_2    只要有一个为真 结果真/一个有假 结果假
!    非、不是    ! 条件    条件真 结果假/条件假 结果真

——————————

单 if 语句

%%%%%

单 if 选择结构

        单 if 选择结构处理单一条件的情况

        如果

条件满足 执行
不满足 跳过

    格式:

if ( 条件表达式 ) {

    /* 代码块 */
}

——————————

单 if 多判断选择结构

        单 if 多判断可以处理组合条件的情况

        如果

条件满足 执行
不满足 跳过

    格式:

if ( 多个条件 ) {

    /* 代码块 */
}

——————————

if-else 选择结构

        if-else 选择结构可以处理简单的条件分支情况

        如果

条件满足 执行后面的语句
不满足 执行 else 中的语句

        格式:

if ( 条件 ) {

    /* 满足条件执行 */
} else {

    /* 不满足条件执行 */
}

——————————

多重 if 选择结构


        多重 if 选择结构可以处理连续区间的条件分支情况
        用来解决需要判断的条件是连续的区间时有很大优势

        格式:

if ( 条件 ) {

    /* 条件成立 执行 */
    /* 然后跳出此多重 if 选择结构 执行后面代码 */
    /* 条件不成立 则判断下面的 else if 条件 */
} else if ( 条件 ) {

    /* 同上 */
} else {

    /* 所有条件不成立 执行 */
    /* 然后退出这个多重 if 选择结构 执行后面代码 */
}

    else if 块可以有多个或没有 这取决于需求
    else 块最多一个或没有 必须在 else if 之后

——————————

嵌套 if 选择结构

        嵌套 if 选择结构可以处理复杂的条件分支情况
        就是在 if 选择结构里面再嵌入 if 选择结构

        格式:

if ( 条件 ) {
/* 这边仅仅演示 if-else 中嵌套 if-else 其她嵌套组合可以自己测试 */

    if ( 条件 ) {

        /* 代码 */
    } else {

        /* 代码 */
    }
} else {

    /* 代码 */
}

        只有当满足外层 if 选择结构的条件
        才会判断内层 if 的条件
        else 总是与她前面最近的那个 else 的 if 配对

##################################################

关于多重 if 结构的顺序问题

——————————

更改前后顺序测试


        示例项目:

根据 money 判断能吃什么

        test.java code:

import java.util.Scanner;

public class test{

	public static void main(String[] Args){

		Scanner input = new Scanner(System.in);

		int money;
		int one = 5;
		int two = 3;
		int three = 2;

		System.out.print ( "你有多少钱 <<< ");
		money = input.nextInt();

		if (money >= one) {

			System.out.println ( "太棒了,我可以买面包吃!" );
		} else if (money >= two) {

			System.out.println ( "不错,我可以买饮料喝!" );
		} else if (money >= three) {

			System.out.println ( "还好,我还能买辣条儿。。" );
		} else {

			System.out.println ( "看来,我只能买大白兔了~" );
		}
	}
}

        cmd demo:

C:\Users\byme\javaTest>javac test.java

C:\Users\byme\javaTest>java test
你有多少钱 <<< 6
太棒了,我可以买面包吃!

C:\Users\byme\javaTest>java test
你有多少钱 <<< 5
太棒了,我可以买面包吃!

C:\Users\byme\javaTest>java test
你有多少钱 <<< 4
不错,我可以买饮料喝!

C:\Users\byme\javaTest>java test
你有多少钱 <<< 3
不错,我可以买饮料喝!

C:\Users\byme\javaTest>java test
你有多少钱 <<< 2
还好,我还能买辣条儿。。

C:\Users\byme\javaTest>java test
你有多少钱 <<< 1
看来,我只能买大白兔了~

C:\Users\byme\javaTest>java test
你有多少钱 <<< 0
看来,我只能买大白兔了~

C:\Users\byme\javaTest>

        然后我们更改一下代码 将 else if 的顺序稍微改变了一下
        虽然不会报错 but 真的能达到理想效果吗?

        更改过后的代码:

import java.util.Scanner;

public class test{

	public static void main(String[] Args){

		Scanner input = new Scanner(System.in);

		int money;
		int one = 5;
		int two = 3;
		int three = 2;

		System.out.print ( "你有多少钱 <<< " );
		money = input.nextInt();

		if (money >= one) {

			System.out.println ( "太棒了,我可以买面包吃!" );
		} else if (money >= three) {

			System.out.println ( "还好,我还能买辣条儿。。" );
		} else if (money >= two) {

			System.out.println ( "不错,我可以买饮料喝!" );
		} else {

			System.out.println ( "看来,我只能买大白兔了~" );
		}
	}
}

        会发现 本来能买饮料的钱
        现在 只能买辣条辽!。。 永远买不到饮料!!
        虽然确实是省了钱。。but 达不到预期的效果!!

C:\Users\byme\javaTest>javac test.java

C:\Users\byme\javaTest>java test
你有多少钱 <<< 6
太棒了,我可以买面包吃!

C:\Users\byme\javaTest>java test
你有多少钱 <<< 5
太棒了,我可以买面包吃!

C:\Users\byme\javaTest>java test
你有多少钱 <<< 4
还好,我还能买辣条儿。。

C:\Users\byme\javaTest>java test
你有多少钱 <<< 3
还好,我还能买辣条儿。。

C:\Users\byme\javaTest>java test
你有多少钱 <<< 2
还好,我还能买辣条儿。。

C:\Users\byme\javaTest>java test
你有多少钱 <<< 1
看来,我只能买大白兔了~

C:\Users\byme\javaTest>java test
你有多少钱 <<< 0
看来,我只能买大白兔了~

C:\Users\byme\javaTest>

        但是有一种例外

        另外一种 情况 比如 多重 if 选择结构中
        所有条件之间 只存在简单的互斥 并没有连续的关系
        这个时候 对于判断条件来说 并没有顺序要求

        例如
这个人的国籍问题 是中国呢?还是俄罗斯呢?还是小日本?
这个人的省份问题 是河北呢?还是河南呢?还是四川呢?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燃吹

呜呜呜没钱钱吃饭了……

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值