关于java做的一个初级银行系统

夏昀 发布于 2018/01/20 10:52
阅读 2K+
收藏 2

public double putMoney(CardVo cv) {// 存钱
  int leftmoney = 0;
  Connection con = null;
  PreparedStatement pst = null;
  PreparedStatement pst1 = null;
  ResultSet rs = null;
  try {
   Scanner sc = new Scanner(System.in);
   con = Conn.getSt().getCon();
   System.out.println("请输入你的卡号:");
   String s = sc.next();
   System.out.println("你要存入多少钱");
   double d = sc.nextDouble();
   // 从数据库中取出余额
   String sql1 = "select pay from card where cardno=?";
   pst1 = con.prepareStatement(sql1);
   pst1.setString(1, s);
   rs = pst1.executeQuery();
   while (rs.next()) {
    // System.out.println(rs.getDouble("pay"));输出这个卡中的余额
    cv.setPay(rs.getDouble("pay")); // 把余额赋值给java的卡中
   }
   String sql = "update card set pay=? where cardno=?";
   cv.setPay(cv.getPay() + d);
   pst = con.prepareStatement(sql);
   pst.setDouble(1, cv.getPay());
   pst.setString(2, s);
   int rs1 = pst.executeUpdate();
   if (rs1 > 0) {
    System.out.println("你剩余的余额是" + cv.getPay());
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } finally {
   Conn.getSt().closeAll(rs, pst, con);
  }
  return leftmoney;

 }

关于我的这篇代码,我想问的是怎么让如果输入的金额是负数时,让重新输入金额,我的这个代码本身是没有错误,我只是想把功能增加的更加完善,卡号与数据库不配的时候也要重新输入,就是在编写的时候,我怎么能让它通过选择,想跳到那就跳到那,以前小的代码都是用的while死循环,现在也不行了,请求各位大神,能帮助我这个小

加载中
0
啡色地带
啡色地带

你用个while循环即可,

while(true){

System.out.println("你要存入多少钱");
   double d = sc.nextDouble();

if(d > 0)break;

}

tcxu
tcxu
可行。
0
啡色地带
啡色地带

还有你这标题太吓人

0
金标
金标
我被吓进来了
0
两江总督是码_农
两江总督是码_农
原来还有sncanner
啡色地带
啡色地带
回复 @lichexo : 以前老版本没有? 这个很早就有了吧, 12年都用这个写简单的解析
拾光TM
拾光TM
以前老版本没有,新的支持了
0
tcxu
tcxu

引用来自“啡色地带”的评论

你用个while循环即可,

while(true){

System.out.println("你要存入多少钱");
   double d = sc.nextDouble();

if(d > 0)break;

}

还可以添加的功能:阻止 那些不符合小数点格式(如 输入的字符串中夹杂  非数字字 符 或 多个小数点) 的输入。 如果输入 4.2d 或 4.2f,表示是个双精度 或 浮点数,那也会通过。当然,输入 4.2s, 好像不表示什么数,那就通不过。

 while(true){
	System.out.print("你要存入多少钱? ");
	try{
	String	s= input.next();
	d = Double.parseDouble(s);
	}catch( Exception e){
	System.out.println("输入格式有误. 请再输入一遍。");
	continue;
		}
	if (d>0) break;
	System.out.println("输入的数字为负数。请再输入一遍。");
  }

 

0
拾光TM
拾光TM
开始不应该还有导入包,import java.util.Scanner;然后才能调用Scanner
拾光TM
拾光TM
当然了,否则怎么用呢
tcxu
tcxu
开始还应该有导入包,import java.util.Scanner; 然后才能调用Scanner ?
0
tcxu
tcxu

如何发现 "卡号与数据库不配"? 是不是链接好数据库,执行完:  rs = pst1.executeQuery();  才能发现?

0
白兔小乖
白兔小乖
我也是被标题吓进来的。太可怕了��
0
夏昀

不好意思了,大家,标题是写的太。。。。。 我是个新手,。。。。。

0
jeojoejoes
jeojoejoes

标题党!!!  

返回顶部
顶部