Java-01变量、运算符、表达式、输入与输出
变量、运算符、表达式、输入与输出
tip:[start]编程是一种控制计算机的方式,和我们平时双击打开文件、关机、重启没有任何区别——闫学灿tip:[end]
1.编写一个简单的Java程序–手速练习
/*
step1:创建一个java源文件:HelloWorld.java
将编写的java代码保存在以".java"结尾的源文件中
*/
//第三个单词必须和文件名一样, 类名大写
public class HelloWorld {
//psvm main方法, 函数名小写
public static void main(String[] args){
//sout 输出语句
System.out.println("Hello World!");
}
}
2.语法基础
2.1 变量
// 变量必须先定义,才可以使用。不能重名。
// 变量定义的方式:
public class Main {
public static void main(String[] args) {
int a = 5;
int b, c = a, d = 10 / 2;
}
}
-
内置数据类型:
类型 字节数 举例 byte整数 1 123 short整数 2 12345 int整数 4 123456789 long整数 8 1234567891011L float浮点数 4 1.2F double浮点数 8 1.2, 1.2D boolean 1 true or false char字符类型 2 'a'-97 'A'-65 '0'-48 - 什么是有效数字?比如1.234*10^5,有效数字是四位
- 有效数字为6到7位。意味着前6、7位是精确值,后面的是不精确的近似值
- 显示表示float,后面加f或F,显示表示double,后面加d或D
-
常量:
- 常量是为了自己写代码,以及代码间的协作,赋值后不能再修改
- 使用final修饰:
final int N = 110;
-
类型转化:
- 显示转化:
int x = (int)'A';
- 隐式转化:
double x = 12, y = 4 * 3.3;
- 显示转化:
2.2 运算符
A = 10, B = 20
运算符 | 描述 | 实例 |
---|---|---|
+ | 把两个数相加 | A + B 将得到 30 |
- | 从第一个数中减去第二个数 | A - B 将得到 -10 |
* | 把两个数相乘 | A * B 将得到 200 |
/ | 分子除以分母 | B / A 将得到 2 |
% | 取模运算符,向零整除后的余数,注意余数可能为负数 | B % A 将得到 0 |
++ | 自增运算符 | A++:先取值后加1;++A:先加1后取值 |
-- | 自减运算符 | A--:先取值后减1;--A:先减1后取值 |
+= | 第一个数加上第二个数 | A = A + B 可以简写为 A += B |
-= | 第一个数减去第二个数 | A = A - B 可以简写为 A -= B |
*= | 第一个数乘以第二个数 | A = A * B 可以简写为 A *= B |
/= | 第一个数除以第二个数 | A = A / B 可以简写为 A /= B |
%= | 第一个对第二个数取余数 | A = A % B 可以简写为 A %= B |
2.3 表达式
// 整数的加减乘除四则运算:
public class Main {
public static void main(String[] args) {
int a = 6 + 3 * 4 / 2 - 2;
System.out.println(a);
int b = a * 10 + 5 / 2;
System.out.println(b);
System.out.println(23 * 56 - 78 / 3);
}
}
// 浮点数(小数)的运算:
public class Main {
public static void main(String[] args) {
double x = 1.5, y = 3.2;
System.out.println(x * y);
System.out.println(x + y);
System.out.println(x - y);
System.out.println(x / y);
//浮点数的直接比较判断可能会有误差
if(x==y)
//一般通过计算两个数的差的绝对值和一个很小的数进行判断来比较
if(Math.abs(x-y)<1e-8)
}
}
//整型变量的自增、自减:
public class Main {
public static void main(String[] args) {
int a = 1;
int b = a ++ ;
System.out.println(a + " " + b);
int c = ++ a;
System.out.println(a + " " + c);
}
}
2.4 输入
// 方式1:效率较低,输入规模较小时使用(输入的数在10的5次方以内)。
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
String str = sc.next(); // 读入下一个字符串,遇到空白字符就会输入结束(空格、回车、制表符等等)
String line = sc.nextLine(); // 读入下一行,不会结束
int x = sc.nextInt(); // 读入下一个整数
float y = sc.nextFloat(); // 读入下一个单精度浮点数
double z = sc.nextDouble(); // 读入下一个双精度浮点数
}
}
// 方式2:效率较高,输入规模较大时使用,注意需要抛异常。
// 注意抛出异常,BufferedWriter输入整数要手动输入
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
System.out.println(str);
}
}
2.5 输出
- System.out.printf()中不同类型变量的输出格式:
int: %d
float: %f
,默认保留6位小数double: %f
,默认保留6位小数char: %c
,回车也是一个字符,用'\n'
表示String: %s
// 方式1:效率较低,输出规模较小时使用。
public class Main {
public static void main(String[] args) throws Exception {
System.out.println(123); // 输出整数 + 换行
System.out.println("Hello World"); // 输出字符串 + 换行
System.out.print(123); // 输出整数
System.out.print("yxc\n"); // 输出字符串
System.out.printf("%04d %.2f\n", 4, 123.456D); // 格式化输出,float与double都用%f输出,%04,前面不足四位会补0,在输出年份是常用,%4d占4位,不足4位在前面补空格,%-4d,不足四位在后面补空格
//readLine只能读一行字符串,想要读整数的话,需要手动操作将字符串转化成int,如果有空格,需要手动先分割出来
String[] str = br.readLine().split(" ");
int x = Integer.parseInt(str[0]);
int y = Integer.parseInt(str[1]);
}
}
// 方式2:效率较高,输出规模较大时使用,注意需要抛异常。
// 注意最后要需要手动刷新缓冲区,如果不刷新有些时候会获取不到输出
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws Exception {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("Hello World\n");
bw.flush(); // 需要手动刷新缓冲区
}
}