标签:系统管理 学习 随机数 yield mon 视频 选项 0.00 math
1.一维数组和多维数组(二维数组为主)的声明和使用
2.命令行实参
3.边界检查(例8.8的解决办法)
int[] grades;
int grades[];
通过阅读教材,发现数组可以有一维的,也可以有二维的,还可以有多维数组。如果把一维数组理解为数轴,那么二维数组就可以理解为平面坐标系,三维数组可以理解为立体坐标系。就拿例8.13为例,输出的数字完全可以看作坐标系上孤立的点。对于二维数组的声明,有三种方式:
int[][] grades;
int grades[][];
int[] grades[];
但是通过蓝墨云视频中的老师讲解,说是第三种情况和前两种的效果相同,但是没有人使用,要是用过被负责人看淡,肯定会杀了你的。所以,弱弱的初学者只能默默地看过一遍,没有去用。(可能是约定俗成吧),就像我之前说过的,把数组理解为树状图,对于理解四维及四维以上的数组,有很大帮助。一个分支下面可以有多个分支,以此类推,可以存储一堆有联系的,但又有微小差别的对象。
- 数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。
- 在命令行中给定的参数就是命令行参数。(即从输入位置角度理解)。
很浅层的理解,命令行实参就是可以在命令行上输入内容,作为参数放到数组里面,进行使用。在看过百度上的资料以及书上的内容,仅会使用,并且对于简单的要求可以应用,会不断的查询资料进行解决的。
- String[]参数(通常称为args)代表了命令行实参,在调用解释器时将提供给程序,即调用解释器时关于命令行的信息将存放在args数组中供使用。
- 在命令行给定参数时,应注意什么?
- 命令行的参数以空格隔开。但是,若命令行的参数本身包含空格时,则该参数必须用一对双引号括起来。
如: java Test1 365 156 China "Beijing of China"
问题1解决方案: 这个程序,我想出四种解决方案,但是三个无用,仅有一个成功。心疼那些耗费脑细胞想出的解决方案
第一种解决方案:对于记录出现次数的解决办法,我想参照例8.3的内容,它是记录大小写字母的出现次数,是基于Unicode字集符的运算,那么我是不是可以应用到数字上呢?字集符上仅有0~9几个数的编码值,想法泡汤。
第二种解决方案:本方案是基于第一种解决方案和if语句的联合使用,如果是个位数字的话,进行一次转换,并通过自增运算符进行计数,如果是含十位数字的话,用求余的方式八十为舍掉,再转换在计数,最后两次计数差表示含十位数的是自出现次数。在进行最后的输出,不过感觉太麻烦了,止步于想法,没有去尝试。
第三种解决方案:本方案与前两个方案有较大的不同,没有用到Unicode字符集,单纯的就是数组,我想既然索引值是数字,那为什么不用数字表示数字呢?就是索引值所代表的数字为存储的数字,那么在此基础上进行自增运算,最后再调用该数剪掉对应的索引值,不就行了么。
第四种解决方案:本方案是在第三种方案上应用的,发现在实例化数组的时候每个索引值对应的位置都是0,那么在0的基础上进行自增,可以解决身躯很多不必要的麻烦,这样的话就可以直接调用相对索引值内的数即为索引值数字所出现的次数。
最终成果在还是有一点问题,根据例5.7的内容进行应用,但是始终跳不出while循环,或是始终进不去while循环,得助于学长的帮助,想到用个if和break进行跳出循环,正好应用了一下break语句,非常成功的记录了各个数字出现的次数问题。
问题2解决方案:算是第一个自己用数组编的项目,调用了Random方法用来输出随机数和Math方法进行辅助,在平均数上的使用,很成功,但是在标准方差上就错误百出,先是自己的for循环的变量设置不对,造成都是ArrayIndexOutOfBoundsException异常,解决过后的尝试便出现一堆的零,逻辑错误超恶心,通过调试,发现是自己确定的随机范围是0~2147483647(int型的最大值),造成最后的标准方差出现了数字范围溢出int型的最大值,变为的零,仅仅修改随机数的范围就行,但是这样,不就限定了输出整数的范围么?在此基础之上,我有修饰了输出整数的格式,通过例6.3的for循环内嵌套if从句,使得每行输出6个数字,让输出结果更人性化。
问题3解决方案:针对8.6有一堆的问题,想了一天多的思路,硬是没想出来,最后翻书看到DVD的那个例题,想到利用那个进行模仿,然后针对题目中的给出的问题有又了困惑,需要写一个数组,但是写一个数组后把一个账户进行存放的话,那么针对一个账户的方法又该放到哪?通过学长的讲解,发现创建数组下的那个类进行对整体的编写,针对每一个账户的类进行对账户内的东西进行编写,就像之前所说的数组理解成为树状图的方式,这样就真正的“实例化”了一个系统管理--一个管理不超过30个银行账户的系统。但是想出来了,就是不会做,热锅上的蚂蚁着急就是不会弄,通过对于欣月的代码的理解,才初步弄懂。
public boolean saveMoney(double a, String b, long c)
{boolean result = false;
for (int i = 0; i <account.length; i++){
if (account[i] != null){
if(account[i].getName().equals(b)&&account[i].getAcctNumber() == c){
account[i].deposit(a);
result = true;}
}
}
其实反过来看看书中也有提示的,P257DVDCollection.java内有一句report += collection[dvd].toString() + "\n";
也在暗示着,还是自己看书不够细致导致的。在做完后看自己写的代码,想想也没有那么难。想到有句俗语“会者不难,难者不会。”其实会与不会之间,就是一道能不能融会贯通的坎,过去了就是一片蓝天白云。
A.if (x > 0) x++;
else x--;B.if (x > 0) x++;
else if (x < 0) x--;C.if (x > 0) x++;
if (x < 0) x--;
else x = 0;D.if (x == 0) x = 0;
else x++;
x--;E.x++;
x--;错误解析:break会终止第二个循环内的第三次循环,然后外部的循环仍会继续下去。
- 执行break语句时,将立即跳转到控制当前执行流程的语句之后继续执行。
错题5:Which of the following are true statements about check boxes?(下面哪个选项是关于复选框的正确语句?)
A.they may be checked or unchecked(它们可能会被检查或检查。)
B.radio buttons are a special kind of check boxes(单选按钮是一种特殊的复选框。)
C.they are Java components(它们是Java组件)
错误解析:复选框的内容是在5.8,标记星号就没看,通过通读内容大致理解了复选框。
- 复选框是一个可以通过鼠标单击来切换开/关状态的按钮,用于设置某个布尔条件为真或假。
错误解析:尽管应该避免使用continue语句,但如果可能的话,可以在Java的三个循环中使用它们:for、while和do-while。
- continue语句和break语句会引起控制流程从一处转移到另一处,所以在循环中使用break语句和continue与句不是个好做法。
(x < 0) ? y = x : y = 0;
语法有错误,这个是自己看书不细致造成的遗漏,没有细细推敲书上内容。错题10:Given the following code, where x = 0, what is the resulting value of x after the for-loop terminates?
(给定以下代码,当x = 0时,for循环结束后x的结果值是多少?)
for(int i=0;i<5;i++)
x += i;
错题11:How many times will the following loop iterate?(下面的循环会迭代多少次?)
int x = 10;
do {
System.out.println(x);
x--;
} while (x > 0);
错题12:Given that s is a String, what does the following loop do?(如果s是一个字符串,那么下面的循环会做什么呢?)
for (int j = s.length( ); j > 0; j--)
System.out.print(s.charAt(j-1));
错误解析:如果break语句不存在,则控制流将继续到下一个案例中。
1.一维数组和多维数组(二维数组为主)的声明和使用
2.命令行实参
3.边界检查(例8.8的解决办法)
第八章的学习,讲的是数组的问题,和之前学习两章相比,一次学一章,相对轻松,不过通过第八章的书后题,认识到现在的编写和之前的编写用明显的区别,各个章的内容都在用,只要有一章有欠缺,编个程序就有问题。尤其是在编写8.1和8.5的时候和第五章的内容有很大的联系,深感学习java的时候放松一会都不行。同时还要不断的动手、动手、再动手,自己发现问题,自己能解决问题。才能更好的学习java,就像学习数学一样多刷题有好处的。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 136/136 | 1/1 | 15/15 | |
第二周 | 570/706 | 1/2 | 20/35 | |
第三周 | 613/1319 | 1/3 | 23/58 | |
第四周 | 1249/2568 | 1/5 | 30/88 | |
第五周 | 904/3472 | 1/6 | 30/118 | |
第六周 | 540/4012 | 1/7 | 33/151 |
标签:系统管理 学习 随机数 yield mon 视频 选项 0.00 math
原文地址:https://www.cnblogs.com/sanjinge/p/8835199.html