1.变量、运算符、输入输出
跟C一样,先把必须写的框架写出来:
package org.example;
public class Main{
public static void main(String[] args)
{
//在里面写实际的代码
}
}
变量
必须先定义,才能使用。与C、C++差不多。
没有赋初值的变量无法去输出。跟C语言还是有一点区别。
内置类型:
常量用final
关键字修饰,类似于C++里面的const
:
final int a = 110;
//修饰后无法修改,报错:a = 11;
类型转化也差不太多:
- 显式转化
int a = (int)'a';
- 隐式转化
double x = 12, y = 4 * 3.3; //4:int->double
运算符
跟C完全一样。无需赘述。
举例为整型变量的自增,++i
和i++
跟C++完全一样。
package org.example;
public class Main{
public static void main(String[] args)
{
int a = 1;
int b = a ++;
System.out.println(a + " + " + b); //输出:2 + 1
int c = ++ a;
System.out.println(a + " + " + c); //输出:3 + 3
}
}
输入
方式1:Scanner
效率较低,数据规模较小时可以使用。
package org.example;
import java.util.Scanner; //引入头文件
public class Main{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in); //使用Scanner
String str = sc.next(); //读入字符串:遇到空白字符(空白回车制表符)就会结束
int x = sc.nextInt(); //读入整数
float y = sc.nextFloat(); //读入单精度浮点数
double z = sc.nextDouble(); //读入双精度浮点数
String line = sc.nextLine(); //读入一行
System.out.println(str);
}
}
方式2:BufferedReader
效率较高,规模较大时采用,注意:需要抛异常。
对异常的详细使用方法见9.
package org.example;
//头文件
import java.io.BufferedReader;
import java.io.InputStreamReader;
//注意抛异常
public class Main{
public static void main(String[] args) throws Exception
{
//使用方式
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str = bf.readLine(); //只有这一种操作,也即是读取一行
System.out.println(str);
}
}
读入的是一个字符串,如果读取一行中的多个整数,需要:按照空格分割、字符串转化为int
,举例:
package org.example;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws Exception
{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String strs[] = bf.readLine().split(" ") ;//分割为若干个字符
int x = Integer.parseInt(strs[0]); //转化为int
int y = Integer.parseInt(strs[1]);
//输入:3 4
System.out.println(x + ", " + y);
//输出:3 , 4
}
}
输出
方式1:System.out
效率较低,输出规模较小时使用。
//第一种:输出不带回车
System.out.print("hello ");
System.out.print("world ");
//第二种:输出带回车
System.out.println("hello world");
//第三种:跟C中的printf一样
//%04d是不足4位补0,%4d是占4位(不足的用空格补),%-4d是在后面补齐4位
System.out.printf("%04d, %.2f", 4, 123.4);
方式2:BufferedWriter
效率较高,在规模较大时使用,注意:需要抛出异常。
package org.example;
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 sky");
bw.flush(); //需要刷新缓冲区才会有显示
}
}