这段实现栈的java代码执行错误..
巴扎黑
巴扎黑 2017-04-18 09:03:20
[Java讨论组]

每次执行到s.push(item)这里就错了..刚开始学java并不是很懂..

package test;
import java.util.Scanner;
public class FixedCapacityStackOfStrings {
    private String[] a;
    private int N;
    public FixedCapacityStackOfStrings(int cap)
    { a = new String[cap];}
    public boolean isEmpty() { return N==0;}
    public int size() {return N;}
    public void push(String item)
    { a[N++] = item;}
    public String pop()
    { return a[--N];}
    public static void main(String[] args)
    {
        FixedCapacityStackOfStrings s;
        s = new FixedCapacityStackOfStrings(100);
        Scanner scan =new Scanner(System.in);
        System.out.println("请输出");
        while(scan.hasNext())
        {
            String item = scan.next();
            if(!item.equals("-"))
                s.push(item);
            else if(!s.isEmpty()) System.out.println(s.pop()+" ");            
        }
        System.out.println("结束");
        scan.close();
        System.out.println("("+s.size()+" left on stack)");
    }
}
巴扎黑
巴扎黑

全部回复(2)
ringa_lee

private int N = 0;
感觉这段代码是不能编译通过的吧?而且while循环没有中止条件(估计是直接ctrl+c退出吧?)

天蓬老师

This method may block while waiting for input to scan.

它在等待你输入啊,没有输入就会阻塞等待。如果想结束输入,windows环境下输入crtl+d就会终止输入,跳出while循环。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号