目录
一:顺序结构
二:分支结构
2.1if语句
2.1.1语法格式
2.1.2具体实例
?2.2switch语句
2.2.1语法格式
2.2.2具体实例
三:循环结构
3.1while循环
3.1.1语法格式
3.1.2具体实例
?break
continue
?3.2for循环
3.2.1语法格式
3.2.2具体实例
四:输入输出?
4.1输出到控制台
4.1.1语法格式
4.1.2具体实例
4.2从键盘输入
猜数字游戏
思维导图:
?
????????喧闹任其喧闹,自有我自为之。世间万事万物,皆有其所遵循之规律,亦都逃脱不了这三种结构。本课我们就详解这这三种结构!
一:顺序结构
????????顺序结构,顾名思义,根据代码书写的顺序依次执行即可。
二:分支结构
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();
}
}
|