for 循环
for(初始化语句;条件判断;操作) {
// 代码块
}
具体例子:
for(int i = 0; i < n; i++) {
}
i++
和++i
++i
是前缀自增运算符,所谓前缀自增是指,它会先将变量增加 1,然后返回增加后的值,再将返回增加后的值参与别的运算i++
是后缀自增运算符,它会先返回变量的当前值,然后再将变量增加 1。
int i = 99;
int result1 = ++i;
int i = 99;
int result2 = i++;
- i是100,result1是100;
- i是100,result2是99。
i--
是一样的
int i = 100;
int result1 = --i;
int i = 100;
int result2 = i--;
- i是99,result1是99;
- i是99,result2是100。
while循环
while(条件) {
// 当条件为真时,就会一直执行
}
与上面的for循环对比就会发现,while只有条件判断,而没有初始化语句和操作语句,所以要在while结构之外进行书写。
例子:
while(i < n) {
int i = 0;
int a = scanner.nextInt();
int b = scanner.nextInt();
System.out.println(a + b)
i++;
}
do while
do {
// 循环体(代码块)
} while (条件判断);
do while循环会先去执行循环体内的代码块,然后再检查条件判断,如果条件判断为真,则继续执行下一次循环迭代;如果 条件判断为假,则终止循环,这意味着,无论条件的值如何,我们都至少执行一次循环。
包装类型
基本数据类型本身不是对象,因此Java内部将这些基础数据类型用“类”的形式包装起来,形成“包装类”
- Integer: 包装int类型。
- Long: 包装long类型。
- Short: 包装short类型。
- Byte: 包装byte类型。
- Double: 包装double类型。
- Float: 包装float类型.
- Character: 包装char类型。
- Boolean: 包装boolean类型。
包装类型就是在“基本数据”类型外面包装了一层,使其变成了对象,并在上面增加了一点功能而已。
自动装箱和自动拆箱
而自动装箱和自动拆箱则是基本数据类型和对应的包装类型之间转换的一种应用,
- 在“基本数据类型”上包装了一层形成“包装类”,这个过程就叫自动装箱,
- 自动拆箱是把这个“包装”给拆掉,将包装类型对象转为对应的基本数据类型。
int age = 10;
Integer boxedAge = age;
Integer boxedAge = 10;
int age = boxedAge;
数据类型转换
当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型,这也被称之为自动类型转换。
不过大容量的瓶子却无法将全部的水都倒入小容量的瓶子,如果非要倒入,就必须使用到强制类型转换。
int i = 100;
byte b = (byte)i; // 将 int类型的 i 转为 byte类型
System.out.println(b); //输出结果为100
代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNextInt()){
int n = sc.nextInt();
for(int i = 0; i < n; i++){
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a+b);
}
}
sc.close();
}
}
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNextInt()){
int n = sc.nextInt();
int i = 0;
while(i++<n){
//while(i<n){
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a+b);
//i++;
}
}
sc.close();
}
}