但是没有发现错误啊,我们做的事一个储物箱的系统,就类似是我们超市,可以打开储物箱,也可以用密码来提取东西
package com.javashiyan;
import java.util.Scanner;
import org.omg.CORBA.PUBLIC_MEMBER;
public class Ex5_1 {
public static void main(String[] args) {
PackageSystem p1=new PackageSystem();
p1.setPackage();
}
}
class Package{
int i;
int j=0;
int mima=(int)Math.random()*9999;
void getShow(){
if(j==0){
System.out.println("0");//原来是空心圆
}
else{
System.out.println("1");//这是实心圆论坛没法发特殊字符
}
}
}
class PackageSystem{
Scanner reader=new Scanner(System.in);
String h1=reader.next();
String h2=reader.next();
String h3=reader.next();
String h4=reader.next();
String h6=reader.next();
String h5=reader.next();
static void Show(Package a){
System.out.print(a.i);
a.getShow();
}
public static int Coin(Package a){
if (a.j==0) {
System.out.println("请取密码纸("+a.i+", "+a.mima+")");
a.j++;
return 1;
}
return 0;
}
public static void TakeOut(Package a,int mima2){
if (mima2==a.mima) {
System.out.println("谢谢惠顾!("+a.i+")");
}
else {
System.out.println("密码错误!");
}
}
public int setPackage(){
System.out.println("请输入箱格的总数: ");
int num=reader.nextInt();
Package a[]=new Package [num];
for (int i = 0; i < a.length; i++) {
a[i].i=i;
a[i]=new Package();
a[i].mima=(int)Math.random()*9999;
//对象数组!
}
System.out.println("提示:输入help,可查询本程序 ");
h1="help";
h2="show";
h3="cion";
h4="exit";
h6="take";
h5=reader.next();
if (h5.equals(h1)) {
System.out.println("输入help,可以查询本程序.");
}
else if (h5.equals(h2)) {
for (int i = 0; i < a.length; i++) {
PackageSystem.Show(a[i]);
}
}
else if (h5.equals(h3)) {
for (int i = 0; i < a.length; i++) {
if (PackageSystem.Coin(a[i])==1) {
}
}
}
else if (h5.equals(h6)) {
System.out.println("输入密码");
int mima1=reader.nextInt();
for (int i = 0; i < a.length; i++) {
PackageSystem.TakeOut(a[i],mima1);
}
}
else if(h5.equals(h4)) {
return 0;
}
return 0;
}
}
------解决思路----------------------
试了下你的代码,可以运行啊。
就是你的类PackageSystem 下的成员变量相关代码:
String h1=reader.next();
String h2=reader.next();
String h3=reader.next();
String h4=reader.next();
String h6=reader.next();
String h5=reader.next();
一般不这样写,reader.next() 是阻塞方法,监听你控制台输入的字符串。
你这样写,代码执行到reader.next()就会“停住”,直到你输入了字符串再执行下面的代码,
所以你好像觉得java没有运行。