| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 山东大学项目实训树莓派提升计划二期(六)条件判断与循环 -> 正文阅读 |
|
[Java知识库]山东大学项目实训树莓派提升计划二期(六)条件判断与循环 |
目录 实验一 条件判断与循环实验目的掌握结构化程序设计的分支结构。 学习用if /else语句实现单分支。 学习用if /else语句和swich语句实现多分支。 掌握结构化程序设计的循环结构。 学习使用while语句、do-while语句、for语句实现循环。 学习控制循环终止条件、循环的正常退出、使用continue语句、break语句。 实验内容1.编写Stars.java程序中的test01_1Code()方法,实现从控制台输入一个自然数n(n>=1),使得在控制台中打印出边长为n的菱形。 例如,n=3时,输出: * *** ***** *** * 2.编写PalindromeTester.java程序中的 test01_2Code(String testString)方法,测试参数testString是否为回文字符串(回文:顺读和倒读都相同的字符串序列),如果是,则返回true;反之返回false。 例如,测试用例为“radar”时,返回true。 实验示例代码1.Stars.java
2.PalindromeTester.java
实验设计的思路和考量1.Stars本个实验设计为交互式的实验,从控制台进行输入,最后从控制台输出。 交互式程序——Scanner类 实验考察的第一方面为交互式程序。如果程序能在执行期间交互的从用户输入中读取数据,就可使程序每执行一次时计算出新结果,并且新结果取决于输入数据,这样的程序才有实用性。 本个实验中,使用了Scanner类进行交互式程序的考察,学生需要掌握Scanner类的基本使用方法。Scanner类属于Java API,可以方便地读取不同类型的输入数据。使用时,需要使用new运算符,创建一个从键盘读取输入的Scanner类对象:Scanner s = new Scanner(System.in);。 System.in对象代表标准输入流设备,默认为键盘。同时,使用Java API是,要记得使用import关键字进行依赖包的导入,比如import java.util.Scanner;,这样才可以使用Scanner类。 for循环语句 实验考察的第二个方面为条件的判断与循环。在课本的例子中,嵌套for循环在每一层输出与层数相同的“*”的个数,考察内容简单。但是在本实验中,不仅需要考虑每行需要的“*”个数(如果行号为i从0开始,“*”的个数为2i+1),还需要考虑依据行数而变化的、在“*”之前输出的空格的个数(一共输出n-j-1个空格),并且还要考虑,如何使边长达到要求数字n后,递减地输出“*”,使上下对称,输出菱形(在设置第一层for循环时,设置i+=k,k可改变数值,进而控制递增或递减)。实验不仅仅是简单考察for循环的编程方式,更考察了动态情况下for循环条件的改变。 2.PalindromeTester本个实验由学生修改PalindromeTester类中的方法,对参数testString进行是否是回文串的判断,并返回Boolean类型的值。测试用例封装于TestApplication.java中,验证实验时只需运行该类,无需修改他的代码。 while循环的考察 While循环和for一样,同是需要掌握的重要循环语句。While的判断条件与for循环的写法不同,且需要注意会不会导致无线循环的发生。 对字符串的操作 在实验中,对字符串的考察有三处。首先需要知道length()方法可以得到一个字符串的总长度,总长度可以作为循环条件的限制条件,也可以用于判断字符串是否结束。其次,熟悉string.charAt(e)的方法。这个方法可以根据下标获得字符串中某个位置的值,并返回一个char类型的数据。最后,考察的是字符串的比较,这是我在刚接触这门语言时的一个难点。 对数值的比较: 数值分为整数和浮点数。用int和long为整数,可以通过任意符号进行比较。用float和double为浮点数,不能用“==”运算符,其他均可。因为根据==号的定义,只有当两个浮点数的二进制数位都相等时,这两个浮点数的值才相等,如果被比较的数值是计算的结果,即使他们足够近似,也不大可能达到精确的相等。因此两个浮点数比较时少用==。 对字符的比较: Char类型为Java中的字符,他以Unicode字符集为基础,定义了所有可能用到的字符的排列顺序。因此可以使用相等性运算和关系运算符来比较字符。如在编写代码时,我运用了testString.charAt(left)==testString.charAt(right)进行比较。 对对象的比较: 对于对象的比较,通常使用的时equals方法,比如String字符串,其实他也是个字符串对象。不能用“==”来比较。当判断两个字符串的相对顺序关系时,会使用到String类的compareTo方法。和equals方法相,compareTo方法更通用。 测试用例的编写 因为需要考察代码的健壮性,因此本个实验设计成了设计者编写测试用例,学生实现编码并进行测试的交互方式。本个实验采用黑盒测试中的等价类划分法,编写测试用例。 有效等价类:字符串长度为奇数、字符串长度为偶数、字符串内容包含字符、数字、空格。 无效等价类:字符串长度为0。 测试用例编写在TestApplication中的对应方法中,运行进行测试,测试失败与成功有不同输出。 测试用例:
测试未通过输出: 测试通过输出: ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 4:55:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |