1.输入与输出
读取输入:
第一:Scanner in = new Scanner(System.in);
第二:用Scanner类的各种方法读取输入,例如用nextline方法将读取一行输入:
System.out.print(“What is your name?”);
String name = in.nextLine();
再比如用next读取一个单词:
String firstName = in.next();
再比如用nextInt方法读取一个整数:
System.out.print(“How old are you?”);
int age = in.nextInt();
类似地。要读取下一个浮点数,就要调用nextDouble方法。
格式化输出:
可以使用语句System.out.print(x)将数值x输出到控制台。这条命令将以x的类型所允许的最大非0数位个数打印输出x。例如:
double x = 10000.0 / 3.0;
System.out.print(x);
打印:3333.3333333333335。
Java 5沿用了C语言函数库中的printf方法。例如,调用:
System.out.printf("%8.2f",x);
会以一个字符宽度打印x:包括8个字符,精度为小数点后2个字符,即打印一个前导的空格和七个字符(包括小数点): 3333.33
可以为printf提供多个参数,例如:
System.out.printf(“Hello, %s, Next year, you’ll be %d”,name,age);//类似C语言
可以使用静态的String.format方法创建一个格式化的字符串,而不打印输出:
String message = String.format(“Hello, &s, next year, you’ll be %d”,name,age);
文件输入与输出:
要想读取一个文件,需要构造一个Scanner对象,如下所示:
Scanner in = new Scanner(Path.of(“myfile.txt”),StandardCharsets.UTF_8);
如果文件名中包含反斜杠符号,就要记住在每个反斜杠之前再加一个额外的反斜杠转义:“C:\mydirectory\myfile.txt”。
然后可以利用任何一个Scanner方法对文件进行读取。
构造一个PrintWriter对象:
PrintWriter out = new PrintWriter(“myfile.txt”,StartardCharsets.UTF_8);
如果文件不存在,创建该文件。可以像输入到System.out一样使用print、println,以及printf命令。
2.控制流程
块作用域
块是指由若干条Java语句组成的语句,并用一对大括号括起来。块确定了变量的作用域。一个块可以嵌套在另一个块中。下面就是嵌套在main方法块中的一个块。
public static void main(String[] args)
{
int n;
…
{
int k;
…
}
}
条件语句:
if(condition) statement
循环语句:
while语句,do while语句。
确定循环:
for语句。
多重选择:
switch语句。
3.大数
如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中两个很有用的类:BigInteger和BigDecimal。
4.数组
声明整型数组a:int[]a;
用new操作符创建数组:int[]a = new int[100];
可创建数组对象同时提供初始值: int [] smallprimes = {2,3,5,7,11,13}; 注意,这个语句不需要使用new,甚至不用指定长度。
长度为0的数组与NULL并不相同。
二维数组:
声明:double[][] balances;
初始化:balances = new double[nyears][nrates];
已知数组元素:
int [][] magicSquare =
{
{16,3,2,13},
{5,10,11,8},
{9,6,7,12},
{4,15,14,1}
};