1.1 读入与打印
读入:
Scanner in = new Scanner(System.in);
int a = in.nextInt();
这样就可以读入一个int
型的值存入a
了。
打印:
System.out.println(a);
这样就打印出了刚才输入的值a
。
1.2 变量与计算
1.2.1 变量的定义
变量定义的一般形式就是:<类型名称><变量名称>;
- int price;
- int amount;
- int price, amount;
1.2.2 变量的名字
- 变量需要一个名字,变量的名字是一种"标识符",意思是它是用来识别这个和那个的不同的名字。
- 标识符有标识符的构造规则。基本的原则是:标识符只能由字母、数字和下划线组成,数字不可出现在第一个位置上,Java的关键字(有的地方叫它们保留字)不可以用作标识符。
1.2.3 变量的赋值和初始化
变量赋值:
int price = 0;
- 这里定义了一个变量,变量名字是price,类型是int,初始值是0。
-
price = 0
是一个式子,这里的=
是一个赋值运算符,表示将=
右边的值赋给左边的变量。 - Java语言并没有强制要求所有的变量都在定义的地方做初始化,但是要求所有的变量在第一次被使用(出现在赋值运算符的右边)之前被赋值。
变量初始化:
<类型名称><变量名称>=<初始值>;
- int price = 0;
- int amount = 100;
组合变量定义的时候,也可以在这个定义中单独给单个变量赋初值,如:
- int price = 0, amount = 100;
读整数:
price = in.nextInt();
要求in
这个对象做读入下一个整数的动作,读到的结果赋值给变量price。
表达式:
=
是赋值运算符,有运算符的式子就叫做表达式。
- price = 0;
- change = 100 - price;
变量类型:
int price = 0;
- 这里定义了一个变量,变量名字是
price
,类型是int
,初始值是0
。 - Java是一种强类型语言,所有的变量在使用之前必须定义或声明,所有的变量必须具有确定的数据类型。数据类型表示在变量中可以存放什么样的数据,变量中只能存放指定类型的数据。
1.2.4 常量
int change = 100 - price;
- 固定不变的数,是常数。直接写在程序里,我们称作直接量(literal),如上式中的
100
。 - 更好的方式是定义一个常量:
final int amount = 100;
fanal
-
final
是一个修饰符,加在int
的前面,用来给这个变量加上一个final
(最终的)的属性。这个final
的属性表示这个变量的值一旦初始化,就不能再修改了。
tips
- 程序要求读入多个数字时,可以在一行输入,中间用空格分开,也可以在多行输入
- 每次召唤
in.nextInt()
,它就等待用户输入一个整数
1.3 浮点数计算
1.3.1 浮点数
- 两个整数的运算结果只能是整数:
10/3*3
的结果是9
-
10
和10.0
在Java中是完全不同的数 -
10.0
是浮点数 - 当浮点数和整数放到一起运算时,Java会将整数转换成浮点数,然后进行浮点数的运算。
浮点数是指带小数点的数值。浮点这个词的本意就是指小数点是浮动的,是计算机内部表达非整数(包含分数和无理数)的一种方式。另一种方式叫做定点数,不过在Java中你不会遇到定点数。人们借用浮点数这个词来表达所有的带小数点的数。浮点数的计算是有误差的。
double的意思是“双”,它本来是“双精度浮点数”的第一个单词,人们用来表示浮点数类型:double inch = 6.7;
整数类型不能表达有小数部分的数,整数的运算结果还是整数。计算机里会有纯粹的整数这种奇怪的东西,是因为整数的运算比较快,而且占地方也较小。
1.3.2 运算符优先级
单目运算符
只有一个算子的运算符:
+
、-
- int a = 10;
- int b = -20;
- System.out.println(a * - b);
结合关系
一般自左向右;单目+-
和赋值=
自右向左
- result = a = b = 3 + c;
- result = 2;
- result = (result = result * 2) * 6 * (result = 3 + result);
1.3.3 强制类型转换
- 如果想把一个浮点数的小数部分去掉,变成整数:
int i = 32 / 3.0;
int i = (int)(32 / 3.0);
- (类型)值
- 只是从那个变量计算出了一个新的类型的值,它并不改变那个变量,无论是值还是类型都不改变
-
强制类型转换的优先级高于四则运算:
int a = 5;
int b = 6;
double d = (double)(a / b);
习题
1 温度转换(5分)
题目内容:
写一个将华氏温度转换成摄氏温度的程序,转换的公式是:
°F = (9/5)*°C + 32
其中C表示摄氏温度,F表示华氏温度。
程序的输入是一个整数,表示华氏温度。输出对应的摄氏温度,也是一个整数。
提示,为了把计算结果的浮点数转换成整数,需要使用如下表达式:(int)x;
其中x
是要转换的那个浮点数。输入格式:
一个整数。
输出格式:
一个整数。
输入样例:
100
输出样例:
37
思路
略。
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int F = in.nextInt();
int C = (int)((F-32)*5/9.0);
System.out.println(C);
}
}