for循环递增和递减的区别
2009-12-05 11:22
507 查看
*************跪求解答**************
哈哈,先一下问题原因,昨天面试有个题目是模拟一个栈。面试完成后,回家自己测试了一下自己写的程序,结果产生了该文章
我用一个数据来模拟这个栈,但是在用for循环测试的时候发现:第一次用: for(int i = 0; i <= as.size(); i++)
输出结果:dcb 少了第一入栈的元素。
第二次改成:
for(int i = as.size(); i > 0 ; i--) 可以正常运行。
自己不明白其中的问题,希望高手可以指点,不胜感激.....................
/**
* 数组实现的堆栈
* @author Administrator
*
*/
public class ArrayStack {
private Object[] elements;
private int size;
public ArrayStack(int size) {
elements = new Object[size];
size = 0;
}
//初始化一个size = 50的数组
public ArrayStack() {
this(50);
}
//return stack size
public int size() {
return size;
}
//isEmpty
public boolean isEmpty() {
return this.size() == 0;
}
//insert into stack
public void push(Object obj) {
elements[size] = obj;
size++;
}
//return object
public Object pop() {
if(!this.isEmpty()) {
Object obj = elements[size - 1];
elements[size - 1] = null;
size--;
return obj;
}else {
return null;
}
}
public static void main(String[] args) {
ArrayStack as = new ArrayStack();
as.push("a");
as.push("b");
as.push("c");
as.push("d");
System.out.println("------------------------------------------------------------------");
// test1.正常运行
for(int i = as.size(); i > 0 ; i--) {
System.out.println(as.pop());
}
System.out.println("------------------------------------------------------------------");
//test2.
for(int i = 0; i <= as.size(); i++) {
System.out.println(i);
System.out.println(as.pop());
}
}
哈哈,先一下问题原因,昨天面试有个题目是模拟一个栈。面试完成后,回家自己测试了一下自己写的程序,结果产生了该文章
我用一个数据来模拟这个栈,但是在用for循环测试的时候发现:第一次用: for(int i = 0; i <= as.size(); i++)
输出结果:dcb 少了第一入栈的元素。
第二次改成:
for(int i = as.size(); i > 0 ; i--) 可以正常运行。
自己不明白其中的问题,希望高手可以指点,不胜感激.....................
/**
* 数组实现的堆栈
* @author Administrator
*
*/
public class ArrayStack {
private Object[] elements;
private int size;
public ArrayStack(int size) {
elements = new Object[size];
size = 0;
}
//初始化一个size = 50的数组
public ArrayStack() {
this(50);
}
//return stack size
public int size() {
return size;
}
//isEmpty
public boolean isEmpty() {
return this.size() == 0;
}
//insert into stack
public void push(Object obj) {
elements[size] = obj;
size++;
}
//return object
public Object pop() {
if(!this.isEmpty()) {
Object obj = elements[size - 1];
elements[size - 1] = null;
size--;
return obj;
}else {
return null;
}
}
public static void main(String[] args) {
ArrayStack as = new ArrayStack();
as.push("a");
as.push("b");
as.push("c");
as.push("d");
System.out.println("------------------------------------------------------------------");
// test1.正常运行
for(int i = as.size(); i > 0 ; i--) {
System.out.println(as.pop());
}
System.out.println("------------------------------------------------------------------");
//test2.
for(int i = 0; i <= as.size(); i++) {
System.out.println(i);
System.out.println(as.pop());
}
}
相关文章推荐
- 【C/C++开发】循环中使用递减计数与递增计数的效率区别
- oracle控制语句学习四——while循环控制语句、for循环控制语句 递增 递减、嵌套循环和标号
- for()循环中递减比递增会少执行一次判断(i++循环与i-–循环的执行效率)
- for...in和for...of循环的区别
- for 循环和 for/in 循环的区别
- javascript中循环语句 while、do-while、for-in、for用法区别
- 深入 foreach 和 for 循环的区别
- for循环的简介及break和continue的区别
- javascript中的for in 循环跟for 循环到底有什么区别啊?
- Java中foreach和for在循环遍历数组、集合方面的区别
- for(;;)和while(1)两种死循环的区别
- for ... of循环和for ... in循环的区别
- php循环语句 for()与foreach()用法区别介绍
- 08-for循环和while循环的小区别
- for循环中++i跟i++有区别吗
- 标识符命名规则 || 形参和实参 || 全局变量和局部变量的区别 || C语言中关键字 || for循环次数的控制
- for 循环和while循环区别
- for()循环中 i++ 和 ++i的区别
- for循环中pairs与ipairs的区别与联系
- for循环与while循环的区别