狂神Java基础学习笔记Day04

1. 用户交互Scanner

java 复制代码
// 基础语法
Scanner s = new Scanner(System.in)

// 接收用户数据
public class Control {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);   
        if(s.hasNext()){
            // 判断用户有没有字符串
            // 可以不加判断
            String str = s.next() ;
            // next方法以空格为结束符,不能得到带有空格的字符串
            // nextLine方法以回车为结束符,能得到带有空格的字符串
            // 接收用户字符串
            System.out.println("输出内容为:" + str);
        }
        // 关闭scanner
        s.close();
    }
}
}

scanner其他方法

hasNextInt() ,判断输入是否为Int类型数据(或某种类型)

nextInt(),接收输入的Int类型数据(或某种类型)

2. 选择结构

java本身是顺序结构,一行一行依次执行
选择结构:if、switch

  1. if :单选(if)、双选(if、else)、多选(if、else if、else)、嵌套结构
    if 的多选结构中只会执行一个情况,执行后直接退出结构
  2. switch :通常是switch case 结构
    case穿透:如果匹配到的case分支中没有break终止,则会继续向下执行之后的所有case分支
    所以每个case分支中需要加break
java 复制代码
        char grade = 'C';
        switch (grade) {
            case 'A':
                System.out.println("优秀");
            case 'B':
                System.out.println("良好");
            case 'C':
                System.out.println("及格");
            case 'D':
                System.out.println("不及格");
            default:
                System.out.println("差");
        }
        // 代码输出:
        及格
        不及格
        差

switch 判断语句中支持八大类型、字符串

字符串在底层的反编译字节码文件中是变成了hashcode去匹配,所以本质上还是数字

3. 循环结构

循环结构:while、do...while、for

  1. while:
java 复制代码
while(条件判断){
    循环体内容
}
  1. do...while :至少会执行一次循环体
java 复制代码
do{
    循环体内容
}while(条件判断);
  1. for:
java 复制代码
for(初始化;布尔表达式;更新){
    循环体内容
}
// for的死循环写法:
for(;;){
   循环体内容
}

便捷写法:在IDEA中,用for.100,即可生成100的for循环

  1. 增强for循环:主要用于数组和集合的增强型for循环
    有点像python中的数组遍历
java 复制代码
int[] numbers = {10,20,30,40};
for(int x : numbers){
    System.out.println(x);
}

4.break、continue

break:强制退出循环

continue:跳过一次循环

goto关键字:跳转到定位的位置,java没有goto,但是有带标签的continue,实现goto,但是不建议使用

java 复制代码
int count = 0;
outer:for(int i = 100;i<105;i++){
     for(int j = 2;j<i/2;j++){
        if(i % j == 0){
          continue outer;
          // 可以跳转到外层for循环
        }
   }
}
相关推荐
非优秀程序员6 小时前
第04章 邮箱大战,163 与 QQ 的暗战|《互联网产品恩仇录》
java·vue.js·架构
Godspeed Zhao6 小时前
从零开始学AI25——无监督学习之层次聚类
学习·机器学习·聚类
知已难寻6 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
文丑颜不良啊8 小时前
LeetCode2481~2500题目解析
java·leetcode
Flynn Liang9 小时前
同一需求三套写法:用 Spring AI、LangChain4j、AgentScope Java 各实现一个带工具调用的 RAG 助手(实战对比)
java·人工智能·大模型·架构设计·spring ai·langchain4j·agentscope
聪明的笨猪猪10 小时前
实际工程问题:AI 生成 Spring Cache(@Cacheable / @CachePut / @CacheEvict)缓存注解踩坑
java·经验分享·面试·ai编程
愿有所息10 小时前
记一次 ARM64 + JDK8 上 fastjson2 的诡异数据错乱
java
秋饼10 小时前
MCP 2026-07-28 无状态协议大改版:Spring AI 2.1 多轮往返请求与网关路由落地
java·ai·技术分享·后端开发
SL_staff12 小时前
JVS-BI 实战:业务人员如何用零代码 ELT + 可视化配置构建实时经营分析闭环
java·spring·全栈
SL_staff12 小时前
企业AI落地难?JVS-AI渐进式实践:安全可控、小切口验证、标准化沉淀与规模化复制
java·开源·aigc