public class ATMTest
{
public static int readDate() throws IOException
{
//此处有代码
while(true)
{
//此处有代码
if()return 1;
else if()return 0;
else return 3; }
}
public static void main(String[] args)
{
switch(readDate())
{
case 1:------
case 0:-----
default:-----
}
}
}
就是这样,我想用readDate()函数通过判断条件传递给主函数中的switch几个int值,但是编译不通过,显示的是readDate()函数没有返回值,求解,在线等!
{
public static int readDate() throws IOException
{
//此处有代码
while(true)
{
//此处有代码
if()return 1;
else if()return 0;
else return 3; }
}
public static void main(String[] args)
{
switch(readDate())
{
case 1:------
case 0:-----
default:-----
}
}
}
就是这样,我想用readDate()函数通过判断条件传递给主函数中的switch几个int值,但是编译不通过,显示的是readDate()函数没有返回值,求解,在线等!
解决方案 »
- 用CsvReader读取csv文件,碰到中文,读出来是乱码??!!!(急)
- 菜鸟求助
- 新手问题
- 问老紫竹:有没有办法将jvm中加载并执行的class序列化到本地
- 老提示:can not resolve symbol class Scanner
- 该怎么对线程控制,让一个线程侦听100个Socket连接呢?
- 用eclipse的请进:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- 在线等待!初级问题?
- JAVA中有没有类似C中的select、poll机制的类包来实现线程并发控制
- 小问题:ArrayList的作用?怎么用?简例说明
- 用Access数据库+jsp,怎么分页显示啊?
- 简单输出问题
看到你有抛IOException异常~while(true)是不是写在try块里?是的话在最后再写一个return 0;
以后代码最好贴全~其实没什么大不了的,要有开源精神
{
//此处有代码
while(true)
{
//此处有代码
if()return 1;
else if()return 0;
return 3; }
}
这样试试,其实最好是在开始设一下初始值
初始值一般为报错的那个值,比如io异常啊,或者什么的,看你业务逻辑然后
int re = 0
逻辑处理
re=xxx;
逻辑处理
return re;
{
//此处有代码
if()return 1;
else if()return 0;
else return 3; }
后加个return *;
public class DownAction {
public static void main(String[] args) {
switch (getData()) {
case 1: {
System.out.println("1111");
break;
}
case 2: {
System.out.println("22222222");
break;
}
case 0: {
System.out.println("00000");
break;
}
default :{
System.out.println("no data");
}
}
}
public static int getData() {
int x = 5;
while(true) {
if(x<3) return 1;
else if (x>=3 && x <5) return 2;
else return 0;
}
}}
//可能打印出00000
其次编译报的错不是因为你说的 readDate()函数没有返回值 ,而是你在main函数里没有处理readDate()函数
里可能抛出的IOException异常,两种方法,
一种
public static void main(String[] args) throws IOException {
另一种
try {
switch (readDate()) {
case 1:
;
case 0:
;
default:
;
}
} catch (IOException e) {
e.printStackTrace();
}
import java.util.*;
import java.io.*;class Manager
{
public Manager(int id,int mm,int money,String DaiHao,int year,int month,int day)
{
ID=id;
MM=mm;
GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
}
private int ID;
private int MM;
private String DaiHao;
private Date hireDay;
}
class User
{
public User(int id,int mm,int money,String DaiHao,int year,int month,int day)
{
ID=id;
MM=mm;
GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
}
private int ID;
private int MM;
private String DaiHao;
private Date hireDay;
}
public class ATMTest
{
public static int readDate() throws IOException
{
try
{
System.out.print("请输入卡号:");
Scanner inpu_1=new Scanner(System.in);
String str_1=inpu_1.nextLine();
int MID=Integer.parseInt(str_1);
System.out.print("请输入密码:");
Scanner inpu_2=new Scanner(System.in);
String str_2=inpu_2.nextLine();
int MMM=Integer.parseInt(str_2);
while(true)
{
BufferedReader inpu = new BufferedReader(new FileReader("UserInfo.txt"));
String s = inpu.readLine();
if(s==null)
{
return 3;
}
StringTokenizer t = new StringTokenizer(s,"#");
String STR_1 = t.nextToken();
int ID=Integer.parseInt(STR_1);
int MM = Integer.parseInt(t.nextToken());
int money = Integer.parseInt(t.nextToken());
String STR_2=t.nextToken();
int y = Integer.parseInt(t.nextToken());
int m = Integer.parseInt(t.nextToken());
int d = Integer.parseInt(t.nextToken());
GregorianCalendar calendar = new GregorianCalendar(y,m-1,d);
Date vhireDay = calendar.getTime();
if((MM==MMM)&&(ID==MID)&&"ADMIN"==STR_2 )
{
return 0;
}
else if((MM==MMM)&&(ID==MID)&&"HQ"==STR_2)
{
return 1;
}
else
return 3;
}
}
catch(IOException exception)
{
exception.printStackTrace();
return 3;
}
}
public static void main(String[] args) throws IOException
{
switch(readDate())
{
case 0:
System.out.println("欢迎您!管理员!");
System.out.println("****************");
System.out.println("1.查询所有活期用户信息");
System.out.println("2.创建活期用户");
System.out.println("3.查询当前ATM现金余额");
System.out.println("4.修改密码");
System.out.println("0.退出");
System.out.println("****************");
break;
case 1:
System.out.println("用户登陆成功");
System.out.println("****************");
System.out.println("1.查询余额");
System.out.println("2.存款");
System.out.println("3.取款");
System.out.println("4.查询存取款明细");
System.out.println("5.修改密码");
System.out.println("0.退出");
System.out.println("****************");
break;
default:
System.exit(0);
break;
}
}
}
这是我的源代码,写的有点垃圾啊,呵呵,勿喷...但是总是显示找不到import java.util.Scanner;
import java.util.*;
import java.io.*;class Manager
{
public Manager(int id,int mm,int money,String DaiHao,int year,int month,int day)
{
ID=id;
MM=mm;
GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
}
private int ID;
private int MM;
private String DaiHao;
private Date hireDay;
}
class User
{
public User(int id,int mm,int money,String DaiHao,int year,int month,int day)
{
ID=id;
MM=mm;
GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
}
private int ID;
private int MM;
private String DaiHao;
private Date hireDay;
}
public class ATMTest
{
public static int readDate() throws IOException
{
try
{
System.out.print("请输入卡号:");
Scanner inpu_1=new Scanner(System.in);
String str_1=inpu_1.nextLine();
int MID=Integer.parseInt(str_1);
System.out.print("请输入密码:");
Scanner inpu_2=new Scanner(System.in);
String str_2=inpu_2.nextLine();
int MMM=Integer.parseInt(str_2);
while(true)
{
BufferedReader inpu = new BufferedReader(new FileReader("UserInfo.txt"));
String s = inpu.readLine();
if(s==null)
{
return 3;
}
StringTokenizer t = new StringTokenizer(s,"#");
String STR_1 = t.nextToken();
int ID=Integer.parseInt(STR_1);
int MM = Integer.parseInt(t.nextToken());
int money = Integer.parseInt(t.nextToken());
String STR_2=t.nextToken();
int y = Integer.parseInt(t.nextToken());
int m = Integer.parseInt(t.nextToken());
int d = Integer.parseInt(t.nextToken());
GregorianCalendar calendar = new GregorianCalendar(y,m-1,d);
Date vhireDay = calendar.getTime();
if((MM==MMM)&&(ID==MID)&&"ADMIN"==STR_2 )
{
return 0;
}
else if((MM==MMM)&&(ID==MID)&&"HQ"==STR_2)
{
return 1;
}
else
return 3;
}
}
catch(IOException exception)
{
exception.printStackTrace();
return 3;
}
}
public static void main(String[] args) throws IOException
{
switch(readDate())
{
case 0:
System.out.println("欢迎您!管理员!");
System.out.println("****************");
System.out.println("1.查询所有活期用户信息");
System.out.println("2.创建活期用户");
System.out.println("3.查询当前ATM现金余额");
System.out.println("4.修改密码");
System.out.println("0.退出");
System.out.println("****************");
break;
case 1:
System.out.println("用户登陆成功");
System.out.println("****************");
System.out.println("1.查询余额");
System.out.println("2.存款");
System.out.println("3.取款");
System.out.println("4.查询存取款明细");
System.out.println("5.修改密码");
System.out.println("0.退出");
System.out.println("****************");
break;
default:
System.exit(0);
break;
}
}
}
这是我的源代码,不好,勿喷啊,呵呵...但是显示无法找到UserInfo.txt文件,让我很上火;还有就是我的readDate()函数听几位仁兄说,貌似返回值有问题啊,请问,我的这个函数,能够给switch正确返回int 型从而判断身份吗?谢谢
UserInfo.txt可能没在你的编译目录下,可以试试绝对路径,比如E:/UserInfo.txt
实际中的代码或许有什么地方忘记了 return语句。现在看,while()不会报错!
请输入卡号:2011001
请输入密码:123
Exception in thread "main" java.lang.NumberFormatException: For input string: "2 "
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at ATMTest.readDate(ATMTest.java:67)//int d = Integer.parseInt(t.nextToken());
at ATMTest.main(ATMTest.java:92)//switch(readDate())
while循环中的条件是假的话,这个函数有返回值么?
要理解编译和运行之前的不同;
//处理。
return 你想要的值 3;
}
试试看吧,尽量以后把try块写小点,养成好的风格
2.文档内数字“2”的后面空格删去了
3.处理了几处异常
4.修改了readDate()的返回值
*5.在字符串比较重,使用if(STR_2.equals("HQ"))替换原本错误的if(STR_2=="HQ")
现在登陆界面已能成功运行,感谢各位的帮助!