【Java编程】程序结构--分支

目录

一、没分支 if...

语法结构

二、两个分支 if ...else...

2.1 if...else...

2.2 嵌套函数 if...else if...

三、多个分支 if...else if...else(级联)与 switch...case...default

3.1 if...else if...else

3.2 switch...case...default

计算机对数据进行比较,再根据比较的结果,决定做、还是不做某些动作,就要用到if语句,画出流程图可以帮助更好理解。以自动售票机为例:

A. 读取(用户):

1. 用户选择终点和线路,确定票面价格 price(假设为10元)

2. 用户投入人民币,实际投入金额 amount

B. 计算 + 判断(售票机):

钱够 (amount >= 10) or 不够 (amount < 10)

C. 输出(售票机):

1. 打印车票并找零 change

2. 钱不够,告知用户余额不足

转化成代码:

Scanner in = new Scanner(System.in);
        int amount;
        System.out.print("请投币:");
        amount = in.nextInt();

        if (amount >= 10.0) 
        {
            System.out.print("找零:" + (amount - 10));
        } 
        else 
        {
            System.out.print("钱不够:需要 " + 10 + ",还缺 " + (10 - amount));
        }

【Java编程】编程基础--计算0 赞同 · 0 评论文章正在上传…重新上传取消

一、没分支 if...

仅一个基本的if语句,表示条件的逻辑表达式为true,那么执行后面大括号中语句,否则跳过这些语句不执行,而继续下面其他语句。

语法结构

if(布尔表达式)
{
   //如果布尔表达式为true将执行的语句
}

// 或者
if(amount >= price)
    change = amount - price ;  //如果条件满足,只要做一件事件,也可以直接写事情,而不用大括号。

二、两个分支 if ...else...

2.1 if...else...

语法结构:

变量初始化;
if(分支条件)
{
  程序1;
}
else
{
  程序2;
}

应用:

常用于判断两个数字的大小,做不同处理;判断数字奇偶做不同处理;输入数字进入不同分支程序。

2.2 嵌套函数 if...else if...

当if的条件满足或者不满足的时候,要执行的语句也用一条if或者if-else语句,这就是嵌套的if语句。 else总是和最近的那个if匹配,除非用{}限制。

语法结构:

if(布尔表达式1)
{
      //如果布尔表达式1的值为true执行代码
  if(布尔表达式2)
   {
      //如果布尔表达式2的值为true执行代码
   }
}

应用:

三个数a,b,c判断大小。

如果不用嵌套结构,就a和b先比较大小,得到的结果用一个变量接收,再用这个结果和剩下的c继续比较。

用嵌套结构,特别适合逻辑树处理问题(a>b 和 a>c 同时满足,Max = a)

Scanner in = new Scanner(System.in);
        int a, b, c;
        a = in.nextInt();
        b = in.nextInt();
        c = in.nextInt();
        int max = 0;

        if (a > b) 
        {
            if (a > c) {
                max = a;
            } 
            else 
            {
                max = c;
            }
        } 
        else 
        {
            if (b > c)
            {
                max = b;
            }
            else
            {
                max = c;
            }
        }
        System.out.println("Max:" + max);

上面的代码风格比较适合 Command +/ 注释。


三、多个分支 if...else if...else(级联)与 switch...case...default

3.1 if...else if...else

if 语句可以有若干个 else if 语句,它们必须在 else 语句之前;

if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后;

一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行(相互独立不重叠);

级联的所有else要对齐;

语法:

if(布尔表达式 1){
   //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
   //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
   //如果布尔表达式 3的值为true执行代码
}else {
   //如果以上布尔表达式都不为true执行代码
}

应用:

可以用于分段函数(合并起来是全集)或者用于检测多种可能的情况(类似switch...case)

Scanner in = new Scanner(System.in);
        int a;
        a = in.nextInt();

        if(a < 10)
        {
            a = -1;
        }
        else if (a == 10)
        {
            a = 10;
        }
        else
        {
            a = 2 * a;
        }
        System.out.println("a:"+ a);

if语句常见错误:

  1. 忘记大括号,永远在if或else后面都用{},即使只有一条语句;
  2. if()后面的分号;
  3. 错误使用==和=;
  4. else总是和最近的if匹配,注意用大括号限制;

3.2 switch...case...default

语法结构:

输入分支条件变量 ;
switch(控制表达式)
{
   case 分支条件1(常量): 
        语句1;
   break;(可选)
...
   case 分支条件n(常量):
        语句n;
   break;(可选)
   default: 
         语句;
}

控制表达式只能是整数型的结果;根据计算表达式的结果,寻找匹配的case,并执行case后面语句,一直到break为止,跳出switch...case。如果没有break,就会将所有case都走一遍。

应用:输入不同数字,显示不同颜色;输入不同星座,显示不同月份。

Scanner in = new Scanner(System.in);
        int type = in.nextInt();

        switch(type)
        {
            case 1:
                System.out.println("red");
                break;

            case 2:
                System.out.println("yellow");
                break;

            default:
                System.out.println("others");
                break;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值