Java学习笔记3——循环语句while使用注意事项
来源:互联网 发布:免费手机视频监控软件 编辑:程序博客网 时间:2024/05/16 12:53
今天早上,我试着写了第一个算法:计算101到200之间的质数。
经过一番敲打,激动地点下RUN,可返回值却是100。
计算结果说明,101到200之间的所有数都是质数。
显然不可能。
一开始,以为是while与if语句嵌套时出了问题,可能是算法设计错了,但检查了好几遍,算法没错。
public class isss {int i=2; int num0 = 0;public boolean check (int sqr){while(i<sqr){int c = sqr%i;if (c==0){i++;num0++;}else{i++;}}if (num0==0){return true;}else{return false;}}
public static void main (String[] args){<span style="white-space:pre"></span>int thisnumber = 101;<span style="white-space:pre"></span>int number = 0;<span style="white-space:pre"></span><span style="font-family: Arial, Helvetica, sans-serif;">isss tool = new isss();</span><span style="white-space:pre"></span><span style="white-space:pre"></span>while(thisnumber<=200){<span style="white-space:pre"></span><span style="white-space:pre"></span>if(tool.check(thisnumber)==true){<span style="white-space:pre"></span>number++;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>thisnumber++;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>System.out.println(number);<span style="white-space:pre"></span>}
后来想到,可能是变量初始化时出了问题,每次检验都要重新初始化变量,导致结果出错,也就是说,变量声明并赋值的位置错了。
仔细想了想,果然是这样,在修改代码,把isss类中2个变量声明移到check方法体里之后,再次输出,结果为21,正是正确的结果。这样每调用一次方法,变量就会被初始化
原来,在这个例子中,对象被实例化之后,调用相关的方法对对象的数据进行修改,循环完一次之后对象的变量值并不会初始化,这样在检验完101之后,下一次检验时的除数仍然是101,102%101肯定不等于0,……
后来又想出了一种修改方法,那就是在循环体中实例化对象,或者是在循环语句中加入重置变量的语句。
另外,使用循环语句嵌套时,可以分块设计,先设计第一层,再设计外层,逐层设计,可以减小难度。
0 0
- Java学习笔记3——循环语句while使用注意事项
- PHP学习笔记——循环结构do...while语句
- Objective-C学习笔记(十)——循环语句for和do-while的使用
- java学习 八、循环语句 while循环
- python基础学习(3)—while循环语句
- PHP学习笔记——PHP循环结构的介绍;循环结构while语句;
- Java编程——循环语句(while语句、do-while语句和for语句)
- Java编程——循环语句(while语句、do-while语句和for语句)
- Java核心技术学习笔记之三——Java中的控制流程for循环while循环
- Objective-C学习笔记(九)——循环语句while的使用方法
- 基础知识—循环语句-while
- JAVA-while循环语句
- JAVA学习笔记4——if语句+switch语句+while语句
- 循环结构语句——while循环
- 使用while循环的注意事项:
- 循环语句的使用——while、do_while、for
- java学习 九、循环语句 do……while语句
- while语句的使用注意事项
- UIScrollable的基本讲解
- android Binder Linux IPC 内核 驱动
- 我是如何从3亿IP中找到CISCO后门路由器的
- iOS Version和Build的区别
- 学习笔记之JQuery 的$("#nav > li")中>的意思
- Java学习笔记3——循环语句while使用注意事项
- poj题目分类记录
- virtualbox克隆VDI文件
- 关于oracle 11g以后不支持裸设备的问题
- hibernate @Entity 主键相关问题
- Spring3.1+ JpaDaoSupport被deprecated后的研究
- exuberant ctags、ctags、ptags等标签工具介绍
- Leetcode-134-Gas Station C#
- win7计划任务