以下为个人学习笔记和习题整理
课程:零基础学 Java 语言 - 浙江大学 - 翁恺 @ 中国大学 MOOC
https://www.icourse163.org/course/ZJU-1001541001
# 课堂笔记
# 读输入、字符串输出
1 | import java.util.Scanner; |
tips:
System.out.println
会换行,System.out.print
则不会换行- 出现警告:
Resource leak: 'in' is never closed
,可以在函数的最后加入1
in.close();//释放
# 变量
形式:<类型名称> < 变量名称 > = < 初始值 >
int price, amount; // 同时定义两个变量
int price = 0; // 定义变量并赋值
int price, amount = 100, age;
类型名称:Java 是一种强类型语言,所有变量在使用前必须定义或声明,所有变量必须具有确定的数据类型。数据类型表示在变量中可以存放什么样的数据,程序运行过程中也不能改变变量的类型。
变量名称:又称标识符,只能由字母、数字、下划线构成,数字不能出现在第一个位置。此外,Java 的保留字也不能用作标识符。
Java 的保留字列表
abstract | do | implements | protected | throws |
---|---|---|---|---|
boolean | double | import | public | transient |
break | else | instanceof | return | true |
byte | extends | int | short | try |
case | false | interface | static | while |
catch | final | long | strictfp | void |
char | finally | native | super | volatile |
class | float | new | switch | |
const* | for | null | synchronized | |
continue | goto* | package | this | |
default | if | private | throw |
- 以下哪些标识符是符合规则的?
# 常量 final
1 | final int AMOUNT = 100; |
# 变量类型
# 整数 int
1 | int price = in.nextInt(); |
- 如果用户输入的不是整数,则会报错
java.util.InputMismatchException
。 - 程序要求读入多个数字时,可以在一行输入,中间用空格分开,也可以多行输入。
- 每次召唤
in.nextInt()
,它就等待用户输入一个整数。 - 两个整数的运算结果只能是整数。
- 在 Java 中,
10
和10.0
是完全不同的数。
# 浮点数 double
- 浮点数运算有误差:由于二进制的自身限制,浮点计算需要将十进制先转换为二进制,然后对二进制数进行计算,因此导致误差。
1 | System.out.println(1.2-1.1); |
- 整数类型不能表达有小数部分的数;整数运算速度快,占内存小;日常中整数运算多。
# 赋值运算
# 强制类型转换
- 浮点数和整数放在一起运算时,Java 会将整数转换成浮点数,然后进行浮点数运算。
- 强制性转换的优先级高于四则运算。
1
2
3
4double a = 1.0;
double b = 2.0;
int i = (int)a/b; //会报错
int i = (int)(a/b); //不会报错
# 运算符优先级
- 单目运算符
+
-
优先级最高 - 结合关系一般自左向右,单目
+
-
和赋值=
自右向左。1
2
3result = a = b = 3 + c;
result = 2;
result = (result = result * 2) * 6 * (result = 3 + result);
# 复合赋值
- 5 个算术运算符,
+ - * / %
,可以和赋值运算符=
结合起来,形成复合赋值运算。注意,两个运算符中间不要有空格。1
2
3
4
5
6
7
8total += (sum+100)/2;
total = total + (sum+100)/2;
total * = sum+12;
total = total*(sum+12);
total /= 12+6;
total = total / (12+6); - 递增递减运算符
++
--
,给变量 + 1 或 - 1 - 前缀后缀:
1
2
3a = 14;
t1 = a++; // t1先被赋值为 a 即14, a自加到 15
t2 = ++a; // a先自加到 15,t2被赋值为 a 即 15
# 编程题
# 题目 1. 温度转换(5 分)
题目内容
写一个将华氏温度转换成摄氏温度的程序,转换的公式是:°F = (9/5)*°C + 32
其中 C 表示摄氏温度,F 表示华氏温度。
程序的输入是一个整数,表示华氏温度。输出对应的摄氏温度,也是一个整数。
提示,为了把计算结果的浮点数转换成整数,需要使用下面的表达式:
(int)x;
其中 x 是要转换的那个浮点数。
注意:除了题目要求的输出,不能输出任何其他内容,比如输入时的提示,输出时的说明等等都不能。这道题目要求转换后的数字,程序就只能输出这个数字,除此之外任何内容都不能输出。
输入格式
一个整数。输出格式
一个整数。输入样例
100输出样例
37
# 解题代码
1 | import java.util.Scanner; |