loading

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();  // 需要手动刷新缓冲区
	}
}

posted @ 2023-12-06 19:43  AFEIOOO  阅读(47)  评论(0编辑  收藏  举报