JAVA基础——输入输出和运算符
一、输入输出(I/O)操作
(一)输出操作
- 作用:将程序中的数据展示到控制台或其他输出设备。
- 常用方法:
System.out.println()
:输出数据并换行。System.out.println("Hello World!");
int num = 100;
System.out.println("数值:" + num);
System.out.print()
:输出数据不换行。System.out.print("姓名:");
System.out.printf()
:格式化输出(类似C语言的printf
)。double score = 95.5;
System.out.printf("成绩:%.1f分", score);
(二)输入操作(Scanner类)
- 作用:读取用户通过键盘输入的数据。
- 使用步骤:
- 导包:引入
Scanner
类(位于java.util
包)。import java.util.Scanner;
- 创建Scanner对象:
Scanner sc = new Scanner(System.in);
- 调用方法获取输入:
- 获取整数:
sc.nextInt()
- 获取字符串:
sc.next()
(遇空格或换行结束) - 获取一行字符串:
sc.nextLine()
(可包含空格,遇换行结束)
System.out.print("请输入年龄:");
int age = sc.nextInt(); System.out.print("请输入姓名:");
String name = sc.next(); System.out.print("请输入地址:");
String address = sc.nextLine();
- 注意事项:
next()
和nextInt()
等方法不会读取换行符,若后续需使用nextLine()
,需先读取剩余的换行符(可先用sc.nextLine()
消耗换行符)。- 输入类型需与方法匹配,否则会抛出异常(如输入字符串给
nextInt()
)。
二、运算符
(一)算术运算符
- 作用:执行基本数学运算。
- 分类:
运算符 | 说明 | 示例 |
---|
+ | 加法/字符串连接 | 5 + 3 → 8 "a" + "b" → "ab" |
- | 减法 | 5 - 3 → 2 |
* | 乘法 | 5 * 3 → 15 |
/ | 除法 | 5 / 2 → 2 (整数相除取整) 5.0 / 2 → 2.5 |
% | 取余 | 5 % 2 → 1 |
- 特殊规则:
- 整数相除结果为整数,小数部分直接舍去(如
7 / 3 → 2
)。 +
与字符串运算时作为连接符,结果为字符串(如"年龄:" + 18 → "年龄:18"
)。
(二)自增自减运算符(++
/--
)
(三)赋值运算符
- 作用:将右侧值赋给左侧变量。
- 分类:
运算符 | 说明 | 示例 | 等价于 |
---|
= | 基本赋值 | a = 10 | |
+= | 加后赋值 | a += 5 | a = a + 5 |
-= | 减后赋值 | a -= 3 | a = a - 3 |
*= | 乘后赋值 | a *= 2 | a = a * 2 |
/= | 除后赋值 | a /= 4 | a = a / 4 |
%= | 取余后赋值 | a %= 3 | a = a % 3 |
- 特点:扩展赋值运算符(如
+=
)隐含强制类型转换,适用于数据累加/累减。
(四)关系运算符
- 作用:比较数据大小或是否相等,返回布尔值(
true
/false
)。 - 分类:
运算符 | 说明 | 示例 | 结果 |
---|
> | 大于 | 5 > 3 → true | |
>= | 大于等于 | 5 >= 5 → true | |
< | 小于 | 2 < 4 → true | |
<= | 小于等于 | 3 <= 1 → false | |
== | 等于 | 5 == 3 → false | |
!= | 不等于 | 5 != 3 → true | |
- 注意:判断相等用
==
,避免误写为赋值运算符=
。
(五)逻辑运算符
- 作用:组合多个条件,返回布尔值。
- 分类:
运算符 | 说明 | 示例 | 运算逻辑 |
---|
&& | 短路与 | a > 1 && b < 10 | 两边都为true 则返回true ,否则false ;左侧为false 时,右侧不执行(短路) |
|| | 短路或 | a > 1 || b < 10 | 只要有一个为true 则返回true ;左侧为true 时,右侧不执行(短路) |
! | 逻辑非 | !(a > 1) | 取反:true 变false ,false 变true |
& | 逻辑与 | a > 1 & b < 10 | 与&& 逻辑相同,但两侧都会执行 |
| | 逻辑或 | a > 1 | b < 10 | 与|| 逻辑相同,但两侧都会执行 |
^ | 逻辑异或 | a > 1 ^ b < 10 | 两侧结果不同则返回true ,相同则返回false |
- 开发建议:优先使用短路运算符(
&&
/||
),效率更高。
(六)三元运算符(条件运算符)
三、典型案例
(一)输入输出案例
import java.util.Scanner;public class IOExample {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入姓名:");String name = sc.next();System.out.print("请输入年龄:");int age = sc.nextInt();System.out.printf("姓名:%s,年龄:%d岁", name, age);}
}
(二)运算符案例
public class OperatorExample {public static void main(String[] args) {int a = 5, b = 3;boolean isTrue = (a > b) && (b != 0); int c = a++ + --b; double score = 85.5;String level = score >= 90 ? "优秀" : (score >= 60 ? "及格" : "不及格"); System.out.println("等级:" + level); }
}
四、注意事项
- 输入顺序:确保输入类型与方法匹配,避免程序异常终止。
- 运算符优先级:复杂表达式需用括号明确运算顺序(如
(a + b) * c
)。 - 短路特性:利用
&&
/||
的短路特性优化条件判断(如避免空指针异常)。