目录
1、顺序结构
顺序结构比较简单,代码按照代码书写的顺序一行一行执行
System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
// 运行结果
aaa
bbb
ccc
2、分支结构
2.1、if语句
1、语法格式1
if(布尔表达式){
// 语句
}
如果布尔表达式结果位true,执行if中的语句,否则不执行。
2、语法格式2
if(布尔表达式){
// 语句1
}else{
// 语句2
}
如果布尔表达式结果位true,则执行i分钟语句,否则执行else中语句。
举例:判断一个数是奇数还是偶数
int num = 10;
if (num % 2 == 0) {
System.out.println("num 是偶数");
} else {
System.out.println("num 是奇数");
}
3、语法格式3
if(布尔表达式1){
// 语句1
}else if(布尔表达式2){
// 语句2
}else{
// 语句3
}
表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3
举例:判断以数字是正数、负数、还是零
int num = 10;
if (num > 0) {
System.out.println("正数");
} else if (num < 0) {
System.out.println("负数");
} else {
System.out.println("0");
}
练习:
1、判断1~100之间3和5的倍数
public class Test {
public static void main1(String[] args) {
int i = 1;
while(i <= 100){
if(i %3 ==0 && i % 5 ==0 ){
System.out.println(i);
i++;
}else{
i++;
continue;
}
}
}
}
2、判断一个年份是否位闰年
int year = 2000;
if (year % 100 == 0) {
// 判定世纪闰年
if (year % 400 == 0) {
System.out.println("是闰年");
} else {
System.out.println("不是闰年");
}
} else {
// 普通闰年
if (year % 4 == 0) {
System.out.println("是闰年");
} else {
System.out.println("不是闰年");
}
}
2.2、switch语句
基本语法
switch(表达式){
case 常量值1:{
语句1;
break;
}
case 常量值2:{
语句2;
break;
}
default:{
内容都不满足时执行语句;
break;
}
}
执行流程:
1. 先计算表达式的值
2. 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束
3. 当表达式的值没有与所列项匹配时,执行default
注意事项:
不能做switch的参数的数据类型有哪些
long double float boolean
3、循环结构
3.1、while循环
基本语法格式:
while(循环条件){
循环语句;
}
循环条件为true,则执行循环语句;否则结束循环
代码示例1:打印1~10的数字
int num = 1;
while (num <= 10) {
System.out.println(num);
num++;
}
代码示例2:计算1~100的和
int n = 1;
int result = 0;
while (n <= 100) {
result += n;
n++;
}
System.out.println(result);
// 执行结果
5050
代码实例3:计算5的阶乘
特别注意:
1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加 上 { }
2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.
3.2、break
break的功能:永久终止循环
代码示例:找到 100~200中第一个3的倍数
3.3、continue
continue的功能是:跳过本次循环后面的代码,进行下一次循环
代码演示:找到100~200中所有3的倍数
public class Test {
public static void main(String[] args) {
int num = 100;
while(num <= 200){
if(num % 3 != 0) {
num++;
continue;
}
System.out.println("找到了3的倍数为:"+num);
num++;
}
}
//结果太多了,如果感兴趣,可以拿这个代码运行一遍
3.4、for循环
基本语法:
for(表达式①;布尔表达式②;表达式③){
表达式④;
}
- 表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
- 表达式2: 循环条件,满则循环继续,否则循环结束
- 表达式3: 循环变量更新方式
代码示例1:计算5的阶乘
2、计算1!+ 2!+ 3! + 4! + 5!
注意事项:和while循环类似
1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上{}
2. 和 if 类似, for 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行.
4. 和while循环一样,结束单趟循环用continue,结束整个循环用break
3.5、do while循环
基础语法:
do{
循环语句;
}while(循环条件);
先执行循环语句,再判断循环条件,循环条件成立则继续执行,否则循环结束。
代码示例:打印1~10
注意事项:
1. do while 循环最后的分号不要忘记
2. 一般 do while 很少用到, 更推荐使用 for 和 while.
4、输入输出
4.1、输出到控制台
基本语法
System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出
- println 输出的内容自带 \n, print 不带 \n
- printf 的格式化输出方式和 C 语言的 printf 是基本一致的.
代码示例:
System.out.println("hello world");
int x = 10;
System.out.printf("x = %d\n", x)
4.2、从键盘输入
再Java当中,我们会用到Java官方写好的一个工具———》Scanner
1、了解Scanner(类)
怎样证明他是一个类呢?
将鼠标放在Scanner上,按住Ctrl,用鼠标点过去,就可以看见Scanner中包含的方法
打开上述内容之后
这样就可以查看Scanner中所有的方法,
当然这么多的方法,也不可能全都记住,只需要学会使用它的方法就行。
2、使用Scanner读取字符串 / 整数 / 浮点数
1、 这里有一些小细节需要注意
原因是在输入年龄后,按下的回车被后边的nextLIne读到了,所以没有输入名字程序就结束了。
要修改也很简单,想办法将回车读完就行。
2、这里再插图一个小问题
4.3、使用 Scanner 循环读取 N 个数字。
注意事项:
当循环输入多个数据的时候, 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl+ d).
5、猜数字游戏
游戏规则:
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了" .
生成随机数的方法:
1、通过凑的方法,生成你想要的任何范围的随机数。
int randNum = random.nextInt(100);//[0,100)
int randNum = random.nextInt(100)+100;//[100,200)
int randNum = random.nextInt(50)+50;//[50,100)