Java笔记
第一章 计算
- alt+/索引
- 光标放着,shift+方向键选取所需要的行,再按ctrl+/进行注释
第一个程序 hello world
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("hello world");//重点
}
}
输入输出
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.println("echo:"+in.nextLine());
System.out.println("2+3="+5);
System.out.println("2+3="+2+3);
System.out.println("2+3="+(2+3));
System.out.println(2+3+"=2+3="+(2+3));
}
}
你好
echo:你好
2+3=5
2+3=23
2+3=5
5=2+3=5 //运算的优先级
变量
变量可以由数字、字母、下划线组成,且首位不可以是数字;且变量不能是保留字。
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
//100找零问题
Scanner in = new Scanner(System.in);
int price;
price=in.nextInt();
System.out.println("100-"+price+"="+(100-price));
}
}
33
100-33=67
赋值
int price=0,amout=0;
final int total=100; //定义了一个常量
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
//找零问题
Scanner in = new Scanner(System.in);
int price,total;
System.out.print("请输入票面:");
total=in.nextInt();
System.out.print("请输入金额:");
price=in.nextInt();
System.out.println(total+"-"+price+"="+(total-price));
}
}
请输入票面:300
请输入金额:29
300-29=271
浮点数
- 当整数和浮点数放在一起运算的时候,java会将整数转换成浮点数,然后进行浮点数的运算。
- 也可以把int改成double
- 浮点数有误差 例如:System.out.println(1.2-1.1)的结果小于0.1
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
//身高英尺问题
int foot;
double inch;
Scanner in=new Scanner(System.in);
foot=in.nextInt();
inch=in.nextDouble();
System.out.println((foot+inch/12)*0.3048);
}
}
5 7
1.7018
优先级
- 第一级:单目运算符(a*-b先算减号)【+ -】
- 第二级:* / %
- 第三级:+ - +(字符串连接)
- 第四级:=(赋值运算符)
结合关系
从右往左:
单目运算符
赋值运算符(result=a=b=3+c)
类型转换
(int)32/3.0 //可以把右边的数32变成整数
(int)(32/3.0) //可以把右边的整个式子变成整数
第二章 判断
注释
- 两个/表示注释(//)
- 延续多行的注释(也可以在单行内使用):以 /* 开头,以 */ 结束
关系运算
- ==
- !=
- < >
- <= >=
- 所有关系运算符优先级比算术运算符优先级低,但比赋值运算符优先级高
- = =和!=的优先级要比其他的低(5>3==6>4 true=true)
- 5>4>3(true>3无法比较);true和false也没有大小先后关系
数比较大小
- 4==4.0 true(整型和浮点型)
- 1.0= =0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1 false(a== b)
- Math.abs(a-b)<1e-6 true
条件判断语句 if
//条件满足跟上一句话
/*if后面不加分号*/
if (total>amount)
total+=amount+10;
//条件满足跟多句话
if()
{
...
...
}
if-else语句
//if-else语句
Scanner in=new Scanner(System.in);
int max;
nt a=in.nextInt();
int b=in.nextInt();
if(a>=b)
max=a;
else
max=b;
System.out.println(max);
else总和它最近的 i f 匹配,不论缩进
若else想和对齐格式上的 i f 相匹配,需要用到 { }符号
int max;
int a=in.nextInt();
int b=in.nextInt();
if(a>=b)
if (a>25)
System.out.println("最大的数大于25");
else //注意该行
System.out.println("最大的数小于25");
max=a;
if(a<b)
max=b;
System.out.println(max);
int max;
int a=in.nextInt();
int b=in.nextInt();
if(a>=b)
if (a>25)
System.out.println("最大的数大于25");
else //注意该行
System.out.println("最大的数小于25");
max=a;
if(a<b)
max=b;
System.out.println(max);
结果均为:
14 4
最大的数小于25
14
级联:if()-else if()-else
习惯让所有else对齐
多路分支 switch-case
- 控制表达式只能是整数型的结果
- 常量可以是常数,也可以是常数计算表达式
switch(控制表达式){
case 常量:
语句
...
break;
case 常量:
语句
...
break;
default:
语句
...
}
例如:
- 不加break
- 带上break
- 并列
int a=in.nextInt();
switch (a){
case 1:
case 2:
System.out.println("122");
break;
case 3:
System.out.println("333");
case 4:
System.out.println("444");
break;
default:
System.out.println("000");
}
//运行结果
1
122
2
122
3
333
444
4
444
5
000
注意点
- 永远在if-else后面加上大括号,即使只有一条语句(避免漏了)
- if后面不加分号(分号表示语句的结束)