目录
1. 顺序结构
程序按照代码的顺序从上往下、从左往右依次执行的代码结构。
public class OrderDemo {
public static void main(String[] args) {
System.out.println("程序开始执行");
System.out.println(1);
System.out.println(2);
System.out.println("程序执行结束");
}
}
2. 选择(判断)结构
2.1 if语句(区间值的判断)
2.1.1 第一种格式
public class IfDemo1 {
public static void main(String[] args) {
//定义两个变量
int a = 10;
int b = 10;
//判断两个变量是否相等
if (a == b) {
System.out.println("a和b相等");
}
}
}
2.1.2第二种格式
public class IfDemo1 {
public static void main(String[] args) {
//定义两个变量
int a = 10;
int b = 20;
//判断两个变量是否相等
if (a == b) {
System.out.println("a和b相等");
} else {
System.out.println("a和b不相等");
}
}
}
2.1.3 第三种格式
public class IfDemo1 {
public static void main(String[] args) {
//定义一个分数判断属于那个等级,90及以上为A,80到90为B,70到80为C,60到70为D,60以下为E
//定义变量
int score = 50;
//判断两个变量是否相等
if (score >= 90) {
System.out.println("A");
} else if (score >= 80 && score < 90) {
System.out.println("B");
} else if (score >= 70 && score < 80) {
System.out.println("C");
} else if (score >= 60 && score < 70) {
System.out.println("D");
} else {
System.out.println("E");
}
}
}
if案例:获取两个整数的较大值
import java.util.Scanner;
public class IfDemo2 {
public static void main(String[] args) {
//键盘录入两个数据,获取最大值
//创建键盘录入对象
Scanner scanner = new Scanner(System.in);
//提示用户录入两个数据,并接收
System.out.println("请输入第一个整数:");
int a = scanner.nextInt();
System.out.println("请输入第二个整数:");
int b = scanner.nextInt();
//定义最大值变量
int max;
//if语句判断
if (a > b) {
max = a;
} else {
max = b;
}
System.out.println("max=" + max);
}
}
2.2 switch语句(固定值的判断)
根据键盘录入的数字(1-7),判断是星期几
import java.util.Scanner;
public class SwitchDemo {
public static void main(String[] args) {
//创建键盘录入对象
Scanner scanner = new Scanner(System.in);
//提示用户录入数字,并接收
System.out.println("请输入一个数字(1到7之间)");
int week = scanner.nextInt();
//根据数字打印出对应日期
switch (week){
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("非法输入");
}
}
}
3. 循环结构
3.1 for循环
3.1.1 案例1打印数字
public class ForDemo {
public static void main(String[] args) {
//打印1-5之间的数据
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
//打印5-1之间的数据
for (int j = 5; j >= 1; j--) {
System.out.println(j);
}
}
}
3.1.2 案例2计算1-5之间数据之和
public class ForDemo {
public static void main(String[] args) {
//打印1-5数据之和
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println(sum);
}
}
3.1.3 案例3求出1-100之间偶数和
public class ForDemo {
public static void main(String[] args) {
//打印1-100之间偶数和
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
3.1.4 案例4输出水仙花数
public class ForDemo {
public static void main(String[] args) {
//打印100-1000之间水仙花数
//获取三位数
for (int i = 100; i < 1000; i++) {
//获取数据的个位、十位和百位数字
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 10 / 10 % 10;
//判断是否为水仙花数
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
System.out.println(i);
}
}
}
}
3.1.5 案例5统计所有的水仙花数
public class ForDemo {
public static void main(String[] args) {
//打印水仙花数的个数
//定义计数器变量
int count = 0;
//获取三位数
for (int i = 100; i < 1000; i++) {
//获取数据的个位、十位和百位数字
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 10 / 10 % 10;
//判断是否为水仙花数
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
count++;
}
}
System.out.println("水仙花数的个数为:" + count);
}
}
3.2 while循环
初始化语句和控制条件语句可省略
案例求1-100之间的数据和
public class WhileDemo {
public static void main(String[] args) {
//求1-100之间数据和
//定义求和变量
int sum = 0;
//初始化语句
int i = 1;
//判断语句
while (i <= 100) {
//循环体
sum += i;
i++;
}
System.out.println(sum);
}
}
3.3 do...while循环
public class DoWhileDemo {
public static void main(String[] args) {
//定义一个变量,纪录练习次数
int count = 1;
//定义一个变量,用来判断是否学会,true学会,false没学会
boolean isOK = false;
//循环
do {
System.out.println("正在进行第" + count + "次练习");
if (count >= 3) {
isOK = true;
}
count++;
} while (!isOK);
}
}
3.4 break和continue
break:直接结束循环
continue:结束本次循环,继续下次循环
3.5 循环嵌套
public class ForDemo {
public static void main(String[] args) {
//获取5个班级的所有学生(每个班级分别有4人)
for (int i = 1; i <= 5; i++) {
//System.out.println("正在获取第"+i+"个班级");
for (int j = 1; j <= 4; j++) {
System.out.println("正在获取第" + i + "个班级" + "第" + j + "个同学");
}
System.out.println();
}
}
}
3.6 带标号的循环结束
发橙子案例
public class OrangeDemo {
public static void main(String[] args) {
//3个班级,每班35人,共100个橙子,编号为5的倍数的同学已经有橙子了
//定义变量,记录发送橙子的总数
int count = 0;
//通过for循环获取每一个班级
label_class:
for (int i = 1; i <= 3; i++) {
//通过for循环获取每一个学生
for (int j = 1; j <= 35; j++) {
//判断学生是否有橙子
if (j % 5 == 0) {
continue; //结束本次循环
}
System.out.println("正在给第" + i + "个班级" + "第" + j + "个同学发橙子");
count++;
if (count >= 100) {
break;
}
}
}
System.out.println();
System.out.println(count);
}
}
3.7 Random类
创建Random对象
Random random = new Random();
获取随机数(0-9)
int num = random.nextInt(10);
System.out.println(num);