当前位置: 首页 > news >正文

JAVA基础——输入输出和运算符

JAVA基础——输入输出和运算符

一、输入输出(I/O)操作

(一)输出操作
  • 作用:将程序中的数据展示到控制台或其他输出设备。
  • 常用方法
    1. System.out.println():输出数据并换行。
      System.out.println("Hello World!"); // 输出字符串并换行
      int num = 100;
      System.out.println("数值:" + num); // 输出拼接后的字符串:数值:100
      
    2. System.out.print():输出数据不换行。
      System.out.print("姓名:"); // 输出“姓名:”后不换行,接着输入内容
      
    3. System.out.printf():格式化输出(类似C语言的printf)。
      double score = 95.5;
      System.out.printf("成绩:%.1f分", score); // 输出:成绩:95.5分(保留一位小数)
      
(二)输入操作(Scanner类)
  • 作用:读取用户通过键盘输入的数据。
  • 使用步骤
    1. 导包:引入Scanner类(位于java.util包)。
      import java.util.Scanner; // 导包语句,需放在类定义前
      
    2. 创建Scanner对象
      Scanner sc = new Scanner(System.in); // 创建扫描器对象,接收键盘输入
      
    3. 调用方法获取输入
      • 获取整数sc.nextInt()
      • 获取字符串sc.next()(遇空格或换行结束)
      • 获取一行字符串sc.nextLine()(可包含空格,遇换行结束)
      System.out.print("请输入年龄:");
      int age = sc.nextInt(); // 输入整数,如20System.out.print("请输入姓名:");
      String name = sc.next(); // 输入字符串,如“张三”System.out.print("请输入地址:");
      String address = sc.nextLine(); // 输入包含空格的字符串,如“北京市朝阳区”
      
  • 注意事项
    • next()nextInt()等方法不会读取换行符,若后续需使用nextLine(),需先读取剩余的换行符(可先用sc.nextLine()消耗换行符)。
    • 输入类型需与方法匹配,否则会抛出异常(如输入字符串给nextInt())。

二、运算符

(一)算术运算符
  • 作用:执行基本数学运算。
  • 分类
    运算符说明示例
    +加法/字符串连接5 + 38
    "a" + "b""ab"
    -减法5 - 32
    *乘法5 * 315
    /除法5 / 22(整数相除取整)
    5.0 / 22.5
    %取余5 % 21
  • 特殊规则
    • 整数相除结果为整数,小数部分直接舍去(如7 / 3 → 2)。
    • +与字符串运算时作为连接符,结果为字符串(如"年龄:" + 18 → "年龄:18")。
(二)自增自减运算符(++/--
  • 作用:对变量值加1或减1。
  • 分类
    运算符位置说明
    ++前置先自增,再使用变量(如++a:a先加1,再参与运算)
    ++后置先使用变量,再自增(如a++:a先参与运算,再减1)
    --前置先自减,再使用变量(如--a:a先减1,再参与运算)
    --后置先使用变量,再自减(如a--:a先参与运算,再减1)
  • 示例
    int a = 5, b = 5;
    int c = ++a; // a先自增为6,再赋值给c → c=6, a=6
    int d = b++; // b先赋值给d为5,再自增为6 → d=5, b=6
    
(三)赋值运算符
  • 作用:将右侧值赋给左侧变量。
  • 分类
    运算符说明示例等价于
    =基本赋值a = 10
    +=加后赋值a += 5a = a + 5
    -=减后赋值a -= 3a = a - 3
    *=乘后赋值a *= 2a = a * 2
    /=除后赋值a /= 4a = a / 4
    %=取余后赋值a %= 3a = a % 3
  • 特点:扩展赋值运算符(如+=)隐含强制类型转换,适用于数据累加/累减。
(四)关系运算符
  • 作用:比较数据大小或是否相等,返回布尔值(true/false)。
  • 分类
    运算符说明示例结果
    >大于5 > 3true
    >=大于等于5 >= 5true
    <小于2 < 4true
    <=小于等于3 <= 1false
    ==等于5 == 3false
    !=不等于5 != 3true
  • 注意:判断相等用==,避免误写为赋值运算符=
(五)逻辑运算符
  • 作用:组合多个条件,返回布尔值。
  • 分类
    运算符说明示例运算逻辑
    &&短路与a > 1 && b < 10两边都为true则返回true,否则false;左侧为false时,右侧不执行(短路)
    ||短路或a > 1 || b < 10只要有一个为true则返回true;左侧为true时,右侧不执行(短路)
    !逻辑非!(a > 1)取反:truefalsefalsetrue
    &逻辑与a > 1 & b < 10&&逻辑相同,但两侧都会执行
    |逻辑或a > 1 | b < 10||逻辑相同,但两侧都会执行
    ^逻辑异或a > 1 ^ b < 10两侧结果不同则返回true,相同则返回false
  • 开发建议:优先使用短路运算符(&&/||),效率更高。
(六)三元运算符(条件运算符)
  • 作用:根据条件选择执行分支,简化if-else逻辑。
  • 格式
    条件表达式 ?1 :2; // 条件为true返回值1,否则返回值2
    
  • 示例
    int a = 10, b = 20;
    int max = a > b ? a : b; // max = 20String result = score >= 60 ? "及格" : "不及格"; // 根据分数判断结果
    

三、典型案例

(一)输入输出案例
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);// 输出示例:姓名:张三,年龄:20岁}
}
(二)运算符案例
public class OperatorExample {public static void main(String[] args) {int a = 5, b = 3;boolean isTrue = (a > b) && (b != 0); // true && true → trueint c = a++ + --b; // a++先使用5,再自增为6;--b先自减为2,再使用2 → c=5+2=7double score = 85.5;String level = score >= 90 ? "优秀" : (score >= 60 ? "及格" : "不及格"); // 嵌套三元运算System.out.println("等级:" + level); // 输出:等级:及格}
}

四、注意事项

  1. 输入顺序:确保输入类型与方法匹配,避免程序异常终止。
  2. 运算符优先级:复杂表达式需用括号明确运算顺序(如(a + b) * c)。
  3. 短路特性:利用&&/||的短路特性优化条件判断(如避免空指针异常)。
http://www.xdnf.cn/news/554779.html

相关文章:

  • 迪杰斯特拉
  • RGB-D数据集汇总(2025年05月更新....)
  • 差动讯号(2):奇模与偶模
  • Python日志功能的使用
  • vue+three.js 五彩烟花效果封装+加载字体
  • AI一周事件(2025年5月13日-5月19日)
  • 外部因素导致的 ADC误差来源分析
  • 苍穹外卖04 新增菜品菜品分页查询删除菜品修改菜品
  • C语言经典面试题及答案100道
  • 思维模型和法则
  • WHAT - CSS 中的 min-width
  • HarmonyOS5云服务技术分享--自有账号对接AGC认证
  • 每日算法 -【Swift 算法】寻找两个有序数组的中位数(O(log(m+n)))详细讲解版
  • 电商虚拟户:重构资金管理逻辑,解锁高效归集与智能分账新范式
  • YOLO12改进-模块-引入Cascaded Group Attention(CGA)模块 提升小目标检测和复杂场景下的定位精度。
  • 一道并发的面试题,控制并发数量
  • Spring的AOP在什么场景下会失效?
  • 贝叶斯优化+CNN+LSTM=小论文创新点
  • 物联网(IoT)智能项目全景指南:技术构架、实现细节与应用实践
  • Oracle如何解决LATCH:CACHE BUFFERS CHAINS
  • java接口自动化初识
  • 保证数据库 + redis在读写分离场景中事务的一致性
  • 985,成立人工智能学院
  • Java高频面试之并发编程-19
  • 第50天-使用Python+Qt+DeepSeek开发AI运势测算
  • 基于springboot3 VUE3 火车订票系统前后端分离项目适合新手学习的项目包含 智能客服 换乘算法
  • 当前主流的传输技术(如OTN、IP-RAN、FlexE等)
  • C++STL之string
  • 产业互联网+三融战略:重构企业增长密码
  • 人工智能+:职业技能培训的元命题与能力重构