1. 変数演算式の入出力
単純な 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))
2. 判決文
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);
3. ループステートメント
3 種類のループ:
while ループ、do while ループ、for ループ (C++ と同じ)
ジャンプステートメント:
中断、続行 (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);
}
}
4. アレイ
1次元配列を定義する
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[] 行: 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
5. 文字列
初期化
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 表示字符串
}
}