Java逻辑控制

简介: Java逻辑控制




一、顺序结构

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

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

二、分支结构

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();
}
}

感谢观看~

相关文章
|
9月前
|
Java
【详识JAVA语言】逻辑控制
【详识JAVA语言】逻辑控制
69 1
|
Java
java的逻辑控制1
java的逻辑控制
61 0
|
4月前
|
Java C语言
【一步一步了解Java系列】:探索Java逻辑控制
【一步一步了解Java系列】:探索Java逻辑控制
40 1
|
5月前
|
Java
java基础(1)逻辑控制if、switch
本文继续介绍了Java中的基础逻辑控制语句,包括if-else语句和switch语句。文章通过示例代码展示了if-else语句如何根据条件判断执行不同的代码块,以及switch语句如何根据变量的值执行不同的case分支。还提供了一个使用Scanner类从键盘获取输入,并根据输入的数字输出对应的星期日的示例。最后提到了如何在IDEA中格式化代码。
49 2
|
9月前
|
Java C语言
Java基础——逻辑控制
Java基础——逻辑控制
|
9月前
|
Java Linux C语言
一步带你了解java程序逻辑控制
一步带你了解java程序逻辑控制
59 2
|
9月前
|
Java Linux C语言
Java中值得注意的『运算符、逻辑控制、输入输出』
Java中值得注意的『运算符、逻辑控制、输入输出』
|
9月前
|
Java
<Java>逻辑控制,方法详解,重载,牛客习题,IDEA调试方法...
<Java>逻辑控制,方法详解,重载,牛客习题,IDEA调试方法
47 0
|
Linux Windows
Java-逻辑控制(下)
Java-逻辑控制(下)
68 0
Java-逻辑控制(上)
Java-逻辑控制(上)
77 0