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

Java SE(3)——程序逻辑控制,输入输出

1.应用程序的常见结构

1.1顺序结构

按照代码的书写顺序从上到下依次执行,每条代码都会执行到且仅执行一次

        System.out.println("不要泄气");System.out.println("你可以的");System.out.println("加油加油");

1.2分支结构

1.2.1 if(布尔表达式)语句

如果布尔表达式为true,执行if中的代码块,否则跳过该代码块

        int i = 10;if(i == 1){System.out.println("if中的布尔表达式为true");//不执行}System.out.println("if中的布尔表达式为false");//执行

1.2.2 if(布尔表达式)-else语句

如果布尔表达式为true,执行if中的代码块,否则执行else中的代码块

        int i = 10;if(i == 1){System.out.println("if中的布尔表达式为true");//不执行}else {System.out.println("if中的布尔表达式为false");//执行}

1.2.3 if(布尔表达式1)-else if(布尔表达式2)-else语句

如果布尔表达式1为true,执行if中的代码块;如果布尔表达式2为true,执行if-else中的代码块;如果布尔表达式1和2都为false,执行else中的代码块

        int i = 10;if(i == 1){System.out.println("if中的布尔表达式1为true");//不执行}else if(i == 2) {System.out.println("else-if中的布尔表达式2为true");//不执行}else {System.out.println("布尔表达式为1和2false");//执行}

1.2.4 switch 语句

执行逻辑:
1.先计算switch()括号中的表达式的值
2.再和case后面的值进行匹配,
3.匹配成功后,执行该case中的代码块,遇到break时跳出switch结构
4.如果没有任何case匹配成功,执行default中的代码块

        int j = 1;switch (j){case 1:System.out.println("j == 1");//执行break;case 2:System.out.println("j == 2");//不执行break;case 3:System.out.println("j == 3");//不执行break;default:System.out.println("j != 1 && j != 2 && j != 3");//不执行}

注:如果case后面不加break,那么执行完该case中的代码块后,后面的case中的代码块都会被执行,这样就失去了多分支选择的作用

1.3循环结构

1.3.1 for(表达式①;布尔表达式②;表达式③)循环

执行逻辑:
1.执行表达式①,整个循环中该表达式只执行一次
2.判断布尔表达式②(如果为true,执行for循环中的代码块;如果为false,跳出循环体)
3.执行for循环中的代码块
4.更新表达式③
5.重复执行2~4步骤,直到布尔表达式②为false

        for (int i = 0; i < 10; i++) {System.out.println(i);//打印 0 1 2 3 4 5 6 7 8 9}

1.3.2 while(布尔表达式)循环

执行逻辑:
1.判断布尔表达式(如果为true,执行while循环中的代码块;如果为false,跳出循环体)
2.执行while循环中的代码块

        int j = 0;while (j < 10){System.out.println(j);j += 2;}

1.3.3 break

作用:让循环提前结束

        //找到1-100中第一个能被3整除的数for (int i = 1; i <= 100; i++) {if (i %3 == 0){System.out.println(i);break;}}

1.3.4 continue

作用:跳过本次循环,进入下一次循环

        //找到1-100中所有能被3整除的数for (int i = 1; i <= 100; i++) {if (i %3 != 0){continue;}System.out.println(i);}

2.Java的输入输出

2.1 输出到控制台

        System.out.println("abc");//输出abc并换行System.out.print("def");//输出def不换行int a = 1,b = 2;System.out.printf("%d,%d",a,b);//和C语言的printf函数一样

2.2 从键盘输入

使用Scanner对象读取数据

        Scanner scanner = new Scanner(System.in);int age = scanner.nextInt();String name = scanner.nextLine();double salary = scanner.nextDouble();scanner.close();

注意:当从控制台输入年龄时,需要敲回车表示年龄输入完毕。但是,String name = scanner.nextLine()会读取到该回车,导致name无法输入,所有要在name前面添加scanner.nextLine()来读取回车
实现猜数字游戏

        Scanner in = new Scanner(System.in);//玩家输入int guess = in.nextInt();Random rand = new Random();//生成随机数1-100int num = rand.nextInt(100) + 1;while (true) {if (guess == num) {System.out.println("You guessed it!");break;}else if (guess > num) {System.out.println("猜大了");guess = in.nextInt();}else {System.out.println("猜小了");guess = in.nextInt();}}
http://www.xdnf.cn/news/2501.html

相关文章:

  • MySQL的锁(InnoDB)【学习笔记】
  • PlatformIO 入门学习笔记(二):开发环境介绍
  • Matlab算例运行
  • MCU ADC参考电压变化怎么办?
  • JS 中call、apply 和 bind使用方法和场景
  • 犬面部检测数据集VOC+YOLO格式987张1类别
  • ST-LINK/V2调试仿真器的接口定义
  • 计算机组成原理系列3--存储系统
  • 【QT】QT多线程
  • PMO 阶段性工作成果报告
  • 【C++QT】Layout 布局管理控件详解
  • STM32标准库和HAL库SPI发送数据的区别-即SPI_I2S_SendData()和HAL_SPI_Transmit()互换
  • 2025系统架构师---事件驱动架构
  • 开源|上海AILab:自动驾驶仿真平台LimSim Series,兼容端到端/知识驱动/模块化技术路线
  • Java大师成长计划之第5天:Java中的集合框架
  • AntBio: 2025 AACR Meeting - Charting New Oncology Frontiers Together
  • 计算机网络应用层(5)-- P2P文件分发视频流和内容分发网
  • RuntimeError: CUDA error: out of memory CUDA kernel errors might be 问题解决
  • TypeScript中的type
  • 220V转18V300mA非隔离电源芯片WT5105
  • 互联网大厂Java面试实录:从Spring Boot到微服务架构的技术问答
  • c++流对象
  • 什么是逐过程执行、逐语句执行和逐指令执行?GDB如何进行上述调试?
  • Codeforces Round 1021 (Div. 2) D. Baggage Claim(建图)
  • 三、UI自动化测试03--操作方法API
  • RPCRT4!NdrConformantStructUnmarshall函数分析的一个例子处理第二部分DomainSid
  • 【Nginx】负载均衡配置详解
  • 互联网大厂Java求职面试:从Java核心到微服务的深度探索
  • 【Android】硬件合成器 HWC
  • 4月27日日记