一、变量 运算符 表达式 输入与输出
一个简单的Java程序
public class Main {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
运算符+、-、*、/、%、++、--、+=、-=、*=、/=、%=都和C++类似
变量必须先定义,才可以使用。不能重名。
变量定义的方式:
public class Main {
public static void main(String[] args) {
int a = 5;
int b, c = a, d = 10 / 2;
}
}
常量用final修饰,声明为final的引用就像c++中声明为const的变量一样,不可改变
final int N = 110;
内置数据类型
byte、short、int、long、double、char、boolean都和C++类似,boolean 占1字节,表达形式true, false
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();//整型
double b = sc.nextDouble();//浮点数
String op = sc.next();//字符的定义
boolean flag = true;
}
}
字符间比较时
if("M".equals(op))
二、判断语句
Java里面也可以直接在输出的时候用三元运算符
如在例题中,如果 Z 大于或等于 5.0,则输出 Aluno aprovado.
,否则输出 Aluno reprovado.
System.out.println(z >= 5.0 ? "Aluno aprovado." : "Aluno reprovado.");
在判断是否是完全数的时候(一个整数,除了本身以外的其他所有约数的和如果等于该数,那么我们就称这个整数为完全数),其优点在于可以直接使用“+”来进行语句的拼接。
System.out.println(sum == a ? a + " is perfect" : a + " is not perfect");
等价于
if (sum == x)
System.out.printf("%d is perfect\n", x);
else
System.out.printf("%d is not perfect\n", x);
三、循环语句
三种循环:
while循环、 do while循环、for循环(同C++一样)
跳转语句:
break、 continue(同C++一样)
经典例题:
斐波那契数列
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a = 1, b = 1;
for (int i = 1; i < n; i ++ ) {
int c = a + b;
a = b;
b = c;
}
System.out.println(a);
}
}
四、数组
定义一维数组
public class Main {
public static void main(String[] args) {
int[] a = new int[10], b;
float[] f = new float[33];
double[] d = new double[123];
char[] c = new char[21];
}
}
数组的初始化
public class Main {
public static void main(String[] args) {
int[] a = {0, 1, 2}; // 含有3个元素的数组,元素分别是0, 1, 2
int[] b = new int[3]; // 含有3个元素的数组,元素的值均为0
char[] d = {'a', 'b', 'c'}; // 字符数组的初始化
}
}
定义多维数组
public class Main {
public static void main(String[] args) {
int[][] a = new int[3][4]; // 大小为3的数组,每个元素是含有4个整数的数组。
int[][][] b = new int[10][20][30]; // 将所有元素的初值为0
// 大小为10的数组,它的每个元素是含有20个数组的数组
// 这些数组的元素是含有30个整数的数组
}
}
数组的遍历:
for(int[] row: a)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[][] a = {
{0, 1, 2, 3},
{4, 5, 6, 7},
{8, 9, 10, 11},
};
for (int[] row: a) { // 范围遍历
for (int x: row) // 范围遍历
System.out.printf("%d ", x);
System.out.println();
}
}
}
经典例题:
数组求斐波那契数列第N项
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] f = new int[n + 1];
f[0] = 0;
f[1] = 1;
for (int i = 2; i <= n; i ++ )
f[i] = f[i - 1] + f[i - 2];
System.out.println(f[n]);
}
}
常用API
五、字符串
初始化
String a = "Hello World";
String b = "My name is ";
String x = b; // 存储到了相同地址
String c = b + "abc"; // String可以通过加号拼接
String d = "My age is " + 18; // int会被隐式转化成字符串"18"
String str = String.format("My age is %d", 18); // 格式化字符串,类似于C++中的sprintf
String money_str = "123.45";
double money = Double.parseDouble(money_str); // String转double
常用API
输入输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str1 = sc.next(); // 输入字符串,遇到空格、回车等空白字符时停止输入
String str2 = sc.nextLine(); // 输入一整行字符串,遇到空格不会停止输入,遇到回车才会停止
System.out.println(str1); // 可以直接输出
System.out.printf("%s\n", str2); // 也可以格式化输出,用 %s 表示字符串
}
}