java学习笔记(二)

108 阅读4分钟

运算时必须有()不然就是a与b连在一起而不是加起来了

?表示是还是不是

取模运算时 结果的符号与被模数相同 即 12 % -5 = 2 -12/-5=2

byte a = 1;

a = a + 1 不行但是 a++;可以 后者还是byte

i *= 0.1 i=0 因为类型不改变

System.out.println(a=b);意思为将b付给a 输出a

。。。。。。。。。(a==b)输出为false或者true

★^为不同为1,相同为0想异或的异

&时比较前后 &&如果前面出错了后面就不看了

计算机使用补码表示负数,所以必须算出原码才能知道这个负数

所以对一个正数取反之后因为符号位为1所以要按照上面来计算

a b 交换: (基本不用)

c=a^b;

a=(a^b)^a,b=c^a;

&&(y=true)这里是赋值给y并且是最后整个是true

结果为false

String a = integer.toBinaryString(60);(将整数60转换为二进制字符串)

取一个数字的二进制后四位 &15

能用条件就别用if else

1.需要设置一个scanner 必须是新的且接受输入的信息

2.用一个变量num来接受scan1的nextInt();

scan1.next()这是字符串想象这个字符串是中文所以可以省略不屑;

获取字符时也是用 scan1.next()

.前面是对象后面的方法第二个首字母要大写例如scan.nextInt();string.charAt(数字);

要有大括号不然只有第一句是大括号之内,会出错

变红了的是类 带有()的是方法例如Math.random()

[0.0,1.0)配范围时先乘一个数再加一个数

对输入的str进行.equals("")的方法进行比较与c语言的strcmp(s1,s2)相似

switch-case别忘了break;不能用boolbean default可以写可以不屑和else一样

算这是一年中的第几天时可以

case 12:

​ 这里加的是11的全部日子 并且不加break;最后加的形式来减少步骤

case 11:

case 3:

判断是否闰年决定加多少

case 1:

加的是day

java里的for (可以 int i=1;)!

创建Scanner只需要一次就行了

for (;;)和while(true)时下面一般有break例输入0时循环终止

a=10,b=20 求输出 10 * 20 = 200

应该为System.out.println(a + " * " + b+" = "+(a*b));

算质数的时候j<Math.sqrt(i)即可

break continue只能跳出最近的循环但是有label就不一样了

可以跳出label所在循环 return是结束整个过程

case 中的break只能跳出switch不能整个过程,用return跳出

scan.next();前为String不是char

import java.util.Scanner;//未考虑界面是循环的 class MoneyDetails { public static void main(String[] args) { int shouruj=0,zhichuj=0; String shourus="无",zhichus="无"; int money=10000; while (true)//★ {

		Scanner scan = new Scanner(System.in);
		System.out.println("----------------家庭收支记账软件----------------");
		System.out.println("				  1收支明细");
		System.out.println("				  2登记收入");
		System.out.println("				  3登记支出");
		System.out.println("				  4退  出\n");
		System.out.print("				  请选择(1-4): _");//不加ln
		//char key = Utility.readMenuSelection();//★应该与System有点像
		int key = scan.nextInt();
		System.out.println();
		switch (key)
		{
			case 2:

			//case '2'://''重要
				System.out.print("本次收入金额:");
				shouruj = scan.nextInt();
				System.out.print("本次收入说明:");
				shourus = scan.next();
				money=money+shouruj;
				break;
			case 3:

				System.out.print("本次支出金额:");
				zhichuj = scan.nextInt();
				System.out.print("本次支出说明:");
				zhichus = scan.next();
				money=money-zhichuj;
				break;	
			case 1:
				System.out.println("----------------当前收支明细记录----------------");
				System.out.println("收支   账户金额   收支金额 说 明");
				System.out.println("收入  "+money+" "+shouruj+"  "+shourus);
				System.out.println("支出  "+money+" "+zhichuj+"  "+zhichus);
				break;
			case 4:
				System.out.print("确认是否退出(Y/N):_");
				String tui = scan.next();
				if (tui.equals("y"))//注意这里是""因为是string
				{
					return;
				}else{
					continue;	
				}
			default:
				System.out.println("请重新输入");
				break;

​ } ​ }

​ }

}

这是自己写的家庭经济收入支出情况

改进后的: import java.util.Scanner;//未考虑界面是循环的 class MoneyDetails { public static void main(String[] args) { String details1 = "";//先要设置才有下面的details+= 这里只说了收入没有支出的+= int shouruj=0,zhichuj=0; String shourus="无",zhichus="无"; int money=10000;

	while (true)//★
	{
		
		Scanner scan = new Scanner(System.in);
		System.out.println("----------------家庭收支记账软件----------------");
		System.out.println("				  1收支明细");
		System.out.println("				  2登记收入");
		System.out.println("				  3登记支出");
		System.out.println("				  4退  出\n");
		System.out.print("				  请选择(1-4): _");//不加ln
		//char key = Utility.readMenuSelection();//★应该与System有点像
		int key = scan.nextInt();
		System.out.println();
		switch (key)
		{
			case 2:

			//case '2'://''重要
				System.out.print("本次收入金额:");
				shouruj = scan.nextInt();
				System.out.print("本次收入说明:");
				shourus = scan.next();
				money=money+shouruj;
				details1 += "收入  "+money+" "+shouruj+"  "+shourus+"\n";//★正因为+=所以才有收入一条条出现
				break;
			case 3:

				System.out.print("本次支出金额:");
				zhichuj = scan.nextInt();
				System.out.print("本次支出说明:");
				zhichus = scan.next();
				money=money-zhichuj;
				break;	
			case 1:
				System.out.println("----------------当前收支明细记录----------------");
				System.out.println("收支   账户金额   收支金额 说 明");
				System.out.println(details1);
				System.out.println("支出  "+money+" "+zhichuj+"  "+zhichus);
				break;
			case 4:
				System.out.print("确认是否退出(Y/N):_");
				String tui = scan.next();
				if (tui.equals("y"))//注意这里是""因为是string
				{
					return;
				}else{
					continue;	
				}
			default:
				System.out.println("请重新输入");
				break;

​ } ​ }

​ ​ }

}