目录
喧闹任其喧闹,自由我自为之。世间万事万物,皆有其所遵循之规律,亦都逃脱不了这三种结构。本课我们就详解这这三种结构!
一:顺序结构
顺序结构,顾名思义,根据代码书写的顺序依次执行即可。
二:分支结构
2.1if语句
2.1.1语法格式
if(布尔表达式){
//语句1
}
if(布尔表达式){
//语句1
}
else{
//语句2
}
if(布尔表达式1){
// 语句1
}else if(布尔表达式2){
// 语句2
}else{
// 语句3
}
2.1.2具体实例
题目:判断某一年是不是闰年
思路:
具体代码如下:
package test;
public class test {
public static void main(String[] args) {
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("不是闰年");
}
}
}
}
运行结果如下:
注意:
- if else语句可以不加括号,此时if后面只能跟一条语句;
- 没有括号标识时,else和最近的if匹配,但是我们不建议这样写。
2.2switch语句
2.2.1语法格式
switch(表达式){
case 常量值1:{
//语句1;
break;
}
case 常量值2:{
//语句2;
break;
}
…
default:{
//内容都不满足时执行语句;
break;
}
}
2.2.2具体实例
要求:根据choose值输出喜欢的球队。
public class test{
public static void main(String[] args) {
int choose = 1;
switch(choose) {
case 1:
System.out.println("湖人"); break;
case 2:
System.out.println("篮网"); break;
case 3:
System.out.println("勇士"); break;
case 4:
System.out.println("公牛"); break;
case 5:
System.out.println("掘金"); break;
case 6:
System.out.println("快船"); break;
case 7:
System.out.println("开拓者"); break;
default:
System.out.println("输入有误"); break;
}
}
}
运行结果如下:
注意:
1.多个case后的常量值不可以重复;
2.switch的括号内只能是以下类型的表达式:
基本类型:byte、char、short、int,注意不能是long、float、double、boolean类型;
引用类型:String常量串、枚举类型。
三:循环结构
3.1while循环
3.1.1语法格式
while(循环条件){
循环语句;
}
3.1.2具体实例
计算1!+2!+…+10!
代码如下:
public class test{
public static void main(String[] args) {
int i = 1;
int tmp=1;
int sum=0;
while(i <= 10){
tmp *= i;
sum += tmp;
i++;
}
System.out.println(sum);
}
}
运行结果如下:
break
遇到break,立即结束循环。
具体实例如下:
public class test{
public static void main(String[] args) {
int num = 100;
while (num <= 200) {
if (num % 6 == 0) {
System.out.println("找到了 6 的倍数, 为:" + num);
break;
}
num++;
}
}
}
分析:
找到100~200之间的第一个6的倍数。如果找到了,直接break跳出循环,程序随即结束。
continue
遇到continue,跳过本次循环,直接进行下一次循环。
具体实例如下:
public class test{
public static void main(String[] args) {
int num = 100;
while (num <= 200) {
if (num % 6 == 0) {
System.out.println("找到了 6 的倍数, 为:" + num);
continue;
}
num++;
}
}
}
如果我们想找到100~200之间所有6的倍数,该代码并不能实现我们的要求,因为当num=102进入循环之后,判断其为6的倍数,接着continue跳过continue之后的代码,直接执行程序的判断部分,102<=200依然成立,进入循环,接着又会执行到continue而跳过其后的代码,显然陷入了死循环。所以我们对代码做如下的修改:
public class test{
public static void main(String[] args) {
int num = 100;
while (num <= 200) {
if (num % 6 == 0) {
System.out.println("找到了 6 的倍数, 为:" + num);
num++;
continue;
}
num++;
}
}
}
运行结果如下:
3.2for循环
3.2.1语法格式
for(表达式①;布尔表达式②;表达式③){
表达式④;
}
表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次;
表达式2: 循环条件,满则循环继续,否则循环结束;
表达式3: 循环变量更新方式;
执行过程:
①②③④—>②③④—>②③④—>②③④—>②③④—>②③④—>…—>②为false,循环结束。
3.2.2具体实例
计算1!+2!+…+10!
代码如下:
public class test{
public static void main(String[] args) {
int i = 1;
int tmp=1;
int sum=0;
for(i=1;i<=10;i++){
tmp *= i;
sum += tmp;
}
System.out.println(sum);
}
}
运行结果如下:
四:输入输出
4.1输出到控制台
4.1.1语法格式
System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出
4.1.2具体实例
public class test{
public static void main(String[] args) {
String msg="此生无悔入华夏!";
System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
//System.out.printf(format, msg); // 格式化输出
int x=10;
System.out.printf("%d",x);
}
}
运行结果如下:
4.2从键盘输入
具体示例如下:
import java.util.Scanner; //需要导入util包
public class test{
public static void main(String[] args) {
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);
System.out.println("年龄: "+age);
System.out.println("工资: "+salary);
}
}
运行结果如下:
猜数字游戏
猜数字游戏,很简单,利用时间戳和循环语句,即可完成。
//猜数字游戏
import java.util.Random;
public class test{
public static void main(String[] args) {
Random random = new Random(); //默认随机种子是系统时间
Scanner sc = new Scanner(System.in);
int guess = random.nextInt(100)+1;
while(true){
System.out.println("请输入你要猜的数字:(1~100)");
int num = sc.nextInt();
if(num < guess){
System.out.println("猜小了");
} else if(num > guess){
System.out.println("猜大了");
}else{
System.out.println("牛逼,猜对了");
break;
}
}
sc.close();
}
}
本课内容结束!