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

Java逻辑控制

 


目录

一、顺序结构

二、分支结构

1、if语句

(1) 语法格式1​编辑

(2)语法格式2​编辑

(3)语法格式3

2、switch 语句

三、循环结构

1、while循环

2、break

3、continue

4、for 循环

5、do while 循环

四、输入输出

1、输出到控制台

2、从键盘输入

五、猜数字游戏


一、顺序结构

顺序结构比较简单,按照代码书写的顺序一行一行执行

如果调整代码的书写顺序, 则执行顺序也发生变化

二、分支结构

1、if语句


(1) 语法格式1

如果布尔表达式结果为true,执行if中的语句,否则不执行


(2)语法格式2

如果布尔表达式结果为true,则执行if中语句,否则执行else中语句。
 

(3)语法格式3

表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3

【注意事项】
        代码风格

2、switch 语句

基本语法

执行流程:
1. 先计算表达式的值
2. 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束
3. 当表达式的值没有与所列项匹配时,执行default

【注意事项】
多个case后的常量值不可以重复
switch的括号内只能是以下类型的表达式:
        基本类型:byte、char、short、int,注意不能是long类型
        引用类型:String常量串、枚举类型

        break 不要遗漏, 否则会失去 "多分支选择" 的效果

        switch 不能表达复杂的条件
        switch 虽然支持嵌套, 但是很丑,一般不推荐~

三、循环结构

1、while循环

基本语法格式:

循环条件为 true, 则执行循环语句; 否则结束循环.
 

代码示例1: 打印 1 - 10 的数字

注意事项
1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.

2、break

break 的功能是让循环提前结束.

代码示例: 找到 100 - 200 中第一个 3 的倍数
 

int num = 100;
while (num <= 200) {
if (num % 3 == 0) {
System.out.println("找到了 3 的倍数, 为:" + num);
break;
} n
um++;
} 
// 执行结果
//找到了 3 的倍数, 为:102

执行到 break 就会让循环结束
 

3、continue

continue 的功能是跳过这次循环, 立即进入下次循环.


代码示例: 找到 100 - 200 中所有 3 的倍数

执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句
 

4、for 循环

【基本语法】

表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
表达式2: 循环条件,满则循环继续,否则循环结束
表达式3: 循环变量更新方式
 

【代码示例】
        计算 1 - 100 的和

【注意事项】 (和while循环类似)
1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
2. 和 if 类似, for 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行.
4. 和while循环一样,结束单趟循环用continue,结束整个循环用break
 

5、do while 循环

【基本语法】

先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束。

例如:打印 1 - 10

【注意事项】
1. do while 循环最后的分号不要忘记
2. 一般 do while 很少用到, 更推荐使用 for 和 while.
 

四、输入输出

1、输出到控制台

基本语法

println 输出的内容自带 \n, print 不带 \n
printf 的格式化输出方式和 C 语言的 printf 是基本一致的

 

代码示例

格式化字符串

这个表格没必要记住, 用到的时候根据需要查一下就行了.
 

2、从键盘输入

使用 Scanner 读取字符串/整数/浮点数
 

import java.util.Scanner; // 需要导入 util 包
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
sc.close(); // 注意, 要记得调用关闭方法
// 执行结果
请输入你的姓名:
张三
请输入你的年龄:
18
请输入你的工资:
1000
你的信息如下:
姓名: 张三
年龄:18
工资:1000.0

使用 Scanner 循环读取 N 个数字,并求取其平均值
 

Scanner sc = new Scanner(System.in);
int sum = 0;
int num = 0;
while (sc.hasNextInt()) {
int tmp = sc.nextInt();
sum += tmp;
num++;
} S
ystem.out.println("sum = " + sum);
System.out.println("avg = " + sum / num);
sc.close();
// 执行结果
10
40.0
50.5
^Z
sum = 150.5
avg = 30.1

注意事项:

当循环输入多个数据的时候, 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl
+ d).
 

五、猜数字游戏

游戏规则:
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低
了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了" .

参考代码
 

import java.util.Random;
import java.util.Scanner;;
class Test {
public static void main(String[] args) {
Random random = new Random(); // 默认随机种子是系统时间
Scanner sc = new Scanner(System.in);
int toGuess = random.nextInt(100);
// System.out.println("toGuess: " + toGuess);
while (true) {
System.out.println("请输入要输入的数字: (1-100)");
int num = sc.nextInt();
if (num < toGuess) {
System.out.println("低了");
} else if (num > toGuess) {
System.out.println("高了");
} else {
System.out.println("猜对了");
break;
}
} 
sc.close();
}
}

感谢观看~

http://www.lryc.cn/news/156274.html

相关文章:

  • easyExcel合并单元格导出
  • SpringBoot项目--电脑商城【用户注册】
  • HCIP学习-IPv6
  • golang高精度十进制数扩展包decimal用法
  • STM32F4X RNG随机数发生器
  • 5、QT中SQLite数据库的操作
  • git回退到某个提交
  • 对可再生能源和微电网集成研究的新控制技术和保护算法进行基线和测试及静态、时域和频率分析研究(Matlab代码实现)
  • Full authentication is required to access this resource解决办法
  • Jetty:使用上下文文件部署离线瓦片.md
  • Docker实战:docker compose 搭建Rocketmq
  • STL常用容器 (C++核心基础教程之STL容器详解)String的API
  • 《人生苦短,我学Python》——条件判断->(if-elif-else)多向选择 条件嵌套
  • MongoDB 数据库性能优化技巧
  • 网络安全人才缺口超百万,如今的就业情况怎样?
  • 「MySQL」MySQL面试题全解析:常见问题与高级技巧详解
  • 【USRP】产品型号、参数、架构全解析系列 6:N320 / N321
  • Apifox 常用 JS 脚本
  • 防止SQL注入的四种方案
  • java单元测试
  • 【LeetCode】双指针求解和为s的两个数字
  • opencv识别一张图片的多个红框,并截取红框的内容
  • 数据库-事务
  • MySQL 使用开源审计插件
  • Python入门教程 | Python3 集合(Set)
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR安全检查的相关问题及解决方法2.0
  • 【C++模拟实现】反向迭代器的实现
  • Kubernetes技术--k8s核心技术持久化存储
  • 【80天学习完《深入理解计算机系统》】第十四天 复习第三章
  • 库中是如何实现string类的?