Java基础学习 |
您所在的位置:网站首页 › 家庭开支感悟和发现 › Java基础学习 |
尚硅谷Java学习的心路历程 (一)家庭收支系统鉴于自己能力在不断提升的过程中,为了让自己的每一次小收获都有所记录,也为了改变自己对生活或者是学习的态度,于是写下第一篇博客,如果出现错误,还请各位积极指正。这里是Hertz’s fall。 代码展示 import java.util.Scanner; public class utility { private static Scanner scanner= new Scanner (System.in); //创建Scanner的基本语法,用于用户输入Scanner s = new Scanner(System.in); public static char readMenuSelection() //方法:判断用户输入选择菜单的字符(想着是类似于函数的) { char c; for( ; ;){ //用户输入一次后程序不至于结束 String str = readKeyBoard(1);//限制用户输入字符长度 c=str.charAt(0); //charAt() 方法用于返回指定索引处的字符。索引范围为从0到length()-1,返回用户最先输入的字符 if((c!='1')&&(c!='2')&&(c!='3')&&(c!='4')){ System.out.print("输入错误,请重新选择!"); }else break; } return c;//c是字符型,用于familyAccount中的switch } public static int readNumber()//方法:读取用户输入的数字{ int n; for( ; ; ){ String str=readKeyBoard(4);//限制字符长度 try{ n=Integer.parseInt(str);//将整型数据Integer转换为基本数据类型int /**Example: String str = "3"; int i = Integer.parseInt(str); System.out.println(i+1);//输出4; String str = "3"; System.out.println(str+1);//output 31;*/ break; } catch (NumberFormatException e)//Numberformatexception表示数字格式化异常,需要查看字符串里面夹杂着string或者其他类型,需要注意文本里面的内容必须是数字形式的字符串。 { System.out.print("数字输入错误,请重新输入:"); } } return n; } public static String readString() { String str = readKeyBoard(8); return str; } public static char readConfirmSelection() { char c; for (; ; ) { String str = readKeyBoard(1).toUpperCase();//toUpperCase()这个方法是小写转大写 c = str.charAt(0);//返回用户最先输入的字符 if (c == 'Y' || c == 'N') { break; } else { System.out.print("选择错误,请重新输入:"); } } return c; } private static String readKeyBoard(int limit) { String line = ""; while (scanner.hasNext()) { line = scanner.nextLine(); if (line.length() limit) { System.out.print("输入长度(不大于" + limit + ")错误,请重新输入:"); continue; } break; } return line; } } public class familyAccount{ public static void main(String[] args){ boolean isFlag=true; String details="";//用于记录用户的收入支出详情 int balance=10000; while(isFlag){ System.out.println("----------家庭收支记账软件----------"); System.out.println(" 1 收支明细"); System.out.println(" 2 登记收入"); System.out.println(" 3 登记支出"); System.out.println(" 4 退 出"); System.out.println(" 请选择(1-4)"); //用户的选择在1-4 char selection = utility.readMenuSelection(); switch (selection){ case '1': System.out.println("1收支明细"); System.out.println("----------家庭收支记账软件----------"); System.out.println("收支\t\t账户金额\t\t收支金额\t\t说明"); System.out.println(details); System.out.println("---------------------------------"); break; case '2': System.out.print("本次收入金额:"); int money = utility.readNumber(); System.out.print("本次收入说明:"); String info=utility.readString(); System.out.println("-----------登记完成----------"); //处理balance balance+=money; //处理details details+=("收入\t"+balance+"\t\t"+money+"\t\t"+info+"\n"); break; case '3': System.out.print("本次支出金额:"); money = utility.readNumber(); System.out.print("本次支出说明:"); info=utility.readString(); System.out.println("-----------登记完成----------"); if(balance>=money){ balance-=money; details+=("收入\t"+balance+"\t\t"+money+"\t\t"+info+"\n"); }else{ System.out.println("支出超过额度!支付失败!"); } break; case '4': //System.out.println("4退 出"); System.out.print("确认是否退出(Y/N)"); char isExit = utility.readConfirmSelection(); if(isExit=='Y'){ isFlag=false; } //break; 可加可不加 //selection是char型,故这里需要用单引号 } } } }以上代码均来自B站尚硅谷Java教程,经过本人思考写下。 个人问题 1.编辑配置自己查找了很多原因都没有发现这里的编辑配置是什么,我简单采用“helloworld”的代码测试了一次,发现这里的配置应该是如下图片所示,与class名相一致。 起初是不太清楚如何将两个类衔接起来的,最初是建立两个包,在两个包里分别创类,后来看了一个博主的代码直接将两个类都放在src里,可行! 小菜鸡需要探索,各位大佬给点提示帮助通关吧!! |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |