AIDE手机编程初级教程(零基础向) 2.3.1 Java基础三 上篇

第二章 第一个游戏

系列教程导航

2.3 Java基础三 简单计算器的改进



2.3.1 上篇


文章目录




出问题了

    在上一节,我们开发了一个非常简单的计算器。它可以计算给定的两个整数的和/差/积/商,并把结果打印在控制台上。这一节,我们会进一步地改进这个计算器,同时在这个例子中讲解Java运行过程中流程控制的一些知识。

    现在我们来思考一个非常特殊的情况:第二个给定的数是0。这种情况下,在算除法的时候,程序会出现错误,如下图所示:

zero

图

    你可以看到,程序给出了一大串错误信息。其中最关键的应该是第一行的:divide by zero(用零除)。我们显然不希望看到这样的内容。

    更加安全人性化的操作应该是,如果程序检测到第二个数是零,就不去计算除法,并打印自定义的警告信息。

    不过,我们目前是不能做到这一点的。因为我们现在写的程序一直都是顺序结构。也就是说,程序会一行一行地执行下去,除了注释的信息之外,所有语句都会被执行到。

    这里我将执行程序比做走路。现在这一条路只有一个主干,没有分支。哪怕除数是零,你也得继续走下去,直到掉进坑里,然后大喊救命。我们则希望在走到除法这个关卡之前,首先判断一下除数是不是零。如果不是的话,我们就放心地走有除法关卡的路,如果是的话,我们就走另外一条没有除法关卡的路。

图

    如何实现这种“分岔路口”呢?Java为我们提供了判断结构。使用判断结构,我们就可以实现前面提到的功能。




两种判断结构

    if语句有三种格式,它们分别是:

//第一种格式
if(条件表达式)
{
    //如果条件表达式的值为true,则执行这一对花括号里的语句(可以有一句或者多句)
    执行语句;//当执行语句只有一句时,可以把此处的一对花括号省略
}


//第二种格式
if(条件表达式)
{
    //如果条件表达式的值为true,则执行这一对花括号里的语句
    执行语句;
}
else
{
    //如果条件表达式的值为false,则执行这一对花括号里的语句
    执行语句;
}


//第三种格式
if(条件表达式1)
{
    //如果条件表达式1的值为true,则执行这一对花括号里的语句
    执行语句;
}
else if(条件表达式2)
{
    //如果条件表达式2的值为true,则执行这一对花括号里的语句
    执行语句;
}
else if(条件表达式3)
{
    //如果条件表达式3的值为true,则执行这一对花括号里的语句
    执行语句;
}

//省略若干个else if结构,和上面的一模一样

else
{
    //如果上面的所有判断全为false,则执行这一对花括号中的语句
    执行语句;
}

    其中,条件表达式的值都应该是boolean类型(比如前面提到的比较运算符,它们的返回值就是boolean类型)

    你还记得上一篇文章提到的三元运算符吗?其实,这就是一个if语句的简写形式。比如:

//定义a,b,c三个int类型的变量,并初始化a和b
int a = 7, b = 2 , c;

//三元运算符
c = (a > b) ? a : b;

//if语句
if(a > b){
    c = a;
}else{
    c = b;
}

    两者的效果是一样的。有的时候,巧用三元运算符可以使程序更简洁。

    你发现了吗?在if语句中,我们往往会用到花括号,它们成对出现,并且里面包含了很多代码。你是否还记得前面提到过的变量的生命周期?一般来讲,一个变量的生命周期也就是它所属的这个花括号。也就是说,如果一个变量定义在一对花括号的里面,那么在这对花括号结束的时候,这个变量会被清除掉。这个是需要注意的。


    switch语句的格式一般情况下只有一种:

switch(表达式)//此处表达式的类型应该是byte,short,int或者char
{
    case 取值1:
        执行语句;
        break;
    case 取值2:
        执行语句;
        break;
    //此处省略若干个case结构,和上面的一模一样
    default:
        执行语句;
        break;//这一行可以删除
}

    你是否注意到了这个关键字:break?在这里,break的作用是结束这个switch语句,也就是说,当程序执行到break的时候,会停止该switch语句的继续执行。

    if语句在执行的时候,只会执行满足条件的那一部分语句;而switch语句则会继续判断下一个条件,直到default语句执行结束。如果我们想要在执行完一个分支之后立即结束switch语句,那么就得在这个分支的代码的最后一行写上break;

    一般来讲,switch语句比较少用。但是作为Java的一个基本语句,这是需要掌握的。


    if/switch的联系和区别

  • 共同点:都是对具体的值进行判断
  • 不同点:
    if语句:可以对区间判断,并且对结果是boolean类型的表达式进行判断
    switch语句:值的个数是固定的
  • if语句的优点:可以使用各种表达式进行灵活判断,往往更加符合我们的需求
  • switch语句的优点:如果需要判断的值是几个固定的值,由于switch将具体的答案都加载进内存,判断的时候效率会更高




改进

    接下来,让我们来真正动手改进我们的简单计算器吧!这里我会给出两个示例,分别使用了if语句和switch语句,两者的效果是一样的,同时希望你能在自己的AIDE里面实现一次。

if

图

    执行程序后,结果如下:

图

    终于,我们成功处理了除数是0这个情况,把我们的简单计算器做了一定程度的改进。




后记

    在这一篇文章里面,我讲解了Java运行过程中程序流程控制的其中两个知识点:顺序结构判断结构。下一篇文章我会接着讲循环结构。流程控制是Java编程的重要基础,所以这一部分的知识请你一定要熟练掌握。



感谢你的阅读!本教程会长期不定时更新。本人不是大神,也会犯错,如果有建议或者提问的话,欢迎评论留言!


系列教程导航

在这里插入图片描述

了解AIDE(3课) 本来以前做PyS60教程是没有介绍开发工具这一节的,由于AIDE专业名词很多,且无可用汉化版(其实汉化版在论坛上是有的,但汉化组们汉化的AIDE由于破坏了软件原有的签名,虽然安装之后可以打开,但写的程序无法run运行,这个大家可以去试试。。) 这里,我开始向大家介绍AIDE的使用和功能,有些截图是截的汉化版的,方便大家对照。 进入主界面如下图: 有的手机第一次打开AIDE时会提示新建一个android项目,可以点不。如上图,点击电脑图标后,会弹出出AIDE的工作区,如下图: 默认工作区弹出的内容是AIDE的项目文件管理器,值得一提是AIDE的项目文件管理器的默认文件目录是在sd卡下的AppProjects目录下的,新建安卓项目最好新建在这个目录下。 工作区里的内容或者说功能可以通过手机菜单键>More(更多)进行切换,More(更多)的内容如下图: 为了防止AIDE以后有更多功能,图片不好对照。下面我给出常用的英文翻译对照: 1、主菜单 Files-->文件夹 GoTo-->跳转 Forward-->前进 Save-->保存 Run-->运行 More-->更多 . 2、More(更多) Go Premium!-->无用的,不管 Show Errors -->显示错误 Show Search Results-->显示搜索结果 Show LogCat-->显示LogCat Show File Location-->显示文件位置 Show Open Files-->显示打开的文件夹 Search in Files-->在文件中搜索 GoTo Class-->跳转到类 GoTo Line-->跳转到行 Export APK-->导出APK Refresh Build-->刷新工程 Refresh Code Analysis-->刷新代码分析 Close Project-->关闭工程 Community-->社区(跳转网页)SDK Help-->社区(跳转到android官方开发帮助) Settings-->设置 Exit-->退出 . 我希望大家在编写第一程序之前先好好的了解一下的我们的开发工具AIDE,还好很多没翻译到的地方可以自己摸索一下,好了,这一节就到这里。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值