1、【嵌套循环】使用双层for循环,在控制台打印出一个四行五列的长方形,效果如下:
@@@@@
@@@@@
@@@@@
@@@@@
public class Demo1 {
public static void main(String[] args) {
//外层执行一次, 内层执行1轮
//控制行
for (int i = 0; i < 4; i++) {
//控制列
for (int j = 0; j < 5; j++) {
System.out.print("@");
}
//换行
System.out.println();
}
}
}
2、【嵌套循环】使用双层for循环,在控制台打印出一个如下三角形,效果如下:
@
@@
@@@
@@@@
@@@@@
public class Demo2 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
//控制列
for (int j = 1; j <= i; j++) {
System.out.print("@");
}
System.out.println();
}
}
}
3、【跳转关键字】输出0-9之间的数,但是不包括5。
public class Demo3 {
public static void main(String[] args) {
//1. 循环获取到0-9所有数
for (int i = 0; i <= 9; i++) {
if (i == 5){
continue;//跳过本次循环,继续下次循环
}
System.out.println(i);
}
}
}
4、【循环+分支】中国有闰年的说法。闰年的规则是:四年一闰,百年不闰,四百年再闰。(年份能够被4整除但不能被100整除算是闰年,年份能被400整除也是闰年)。请打印出1988年到2019年的所有闰年年份。
public class Demo4 {
public static void main(String[] args) {
//1. 先获取到1988-2019区间
for (int i = 1988; i <= 2019; i++) {
//2. 对i进行判断
//i % 4 == 0 && i % 100 != 0
//i % 400 == 0
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
System.out.println(i);
}
}
}
}
5、【三元运算符】李雷想买一个价值7988元的新手机,她的旧手机在二手市场能卖1500元,而手机专卖店推出以旧换新的优惠,把她的旧手机交给店家,新手机就能够打8折优惠。为了更省钱,李雷要不要以旧换新?
public class Demo5 {
public static void main(String[] args) {
//1. 以旧换新方案节省了多少钱
double money = 7988 * (1 - 0.8);
System.out.println(money);
//2. 判断
String result = money > 1500 ? "要" : "不要";
//3. 结果
System.out.println(result + "以旧换新");
}
}
6、【三元运算符】让用户依次录入三个整数,求出三个数中的最小值,并打印到控制台。
public class Demo6 {
public static void main(String[] args) {
//0. 创建键盘对象
Scanner scanner = new Scanner(System.in);
//1. 使用键盘对象接收数据
System.out.println("请输入第1个数");
int t1 = scanner.nextInt();
System.out.println("请输入第2个数");
int t2 = scanner.nextInt();
System.out.println("请输入第3个数");
int t3 = scanner.nextInt();
//2. 使用三元运算符获取到最小值
//2-1 获取到t1和t2之间比较小的数, 赋值给变量temp
int temp = t1 < t2 ? t1 : t2;
//2-2 获取到temp和t2之间比较小的数, 赋值给变量min
int min = temp < t3 ? temp : t3;
//3 打印结果
System.out.println("min=" + min);
}
}
7、【switch】某银行推出了整存整取定期储蓄业务,其存期分为一年、两年、三年、四年,到期凭存单支取本息。
存款年利率表如下:
存期 年利率(%)
一年 2.25
两年 2.7
三年 3.25
四年 3.6
请存入一定金额(1000起存),存一定年限(四选一),计算到期后得到的本息总额。
提示:
存入金额和存入年限均由键盘录入
本息计算方式:本金+本金×年利率×年限
public class Demo7 {
public static void main(String[] args) {
//0. 创建键盘对象
Scanner scanner = new Scanner(System.in);
//1. 使用键盘对象接收数据
System.out.println("请输入存入金额");
int money = scanner.nextInt();//本金
System.out.println("请输入存入年限");
int year = scanner.nextInt();//年限 1 2 3 4
//2. 分别计算四种情况的本息总额
//准备一个变量接收最后的金额
double jiner = 0;
switch (year) {
case 1:
jiner = money + money * 0.0225 * year;
break;
case 2:
jiner = money + money * 0.027 * year;
break;
case 3:
jiner = money + money * 0.0325 * year;
break;
case 4:
jiner = money + money * 0.036 * year;
break;
}
//3. 输出
System.out.println("本金:" + money + ",存储年限:" + year + ",本息总额:" + jiner);
}
}
8、【switch】某商场购物可以打折,具体规则如下:
普通顾客购不满100元不打折,满100元打9折;
会员购物不满200元打8折,满200元打7.5折;
不同打折规则不累加计算。
请根据此优惠计划进行购物结算,键盘录入顾客的类别(0表示普通顾客,1表示会员)和购物的折前金额(整数即可),输出应付金额(小数类型)。
public class Demo8 {
public static void main(String[] args) {
//0. 创建键盘对象
Scanner scanner = new Scanner(System.in);
//1. 使用键盘对象接收数据
System.out.println("请输入顾客类型");
int type = scanner.nextInt();//顾客类型
System.out.println("请输入购物金额");
int money = scanner.nextInt();//购物金额
//2. 分两种情况讨论
double jiner = 0;
switch (type) {
case 0:
jiner = money < 100 ? money : money * 0.9;
break;
case 1:
jiner = money < 200 ? money * 0.8 : money * 0.75;
break;
}
//3. 打印
System.out.println("顾客类型:" + type + ",消费金额:" + money + ",折后金额:" + jiner);
}
}
9、【switch】模拟计算器功能,对键盘录入的两个int类型的数据进行加、减、乘、除的运算,并打印运算结果。
要求:
键盘录入三个整数,其中前两个整数代表参加运算的数据,第三个整数为要进行的运算(1:表示加法运算,2:表示减法运算,3:表示乘法运算,4:表示除法运算),演示效果如下:
请输入第一个整数: 30
请输入第二个整数: 40
请输入您要进行的运算(1:表示加法,2:表示减法,3:表示乘法,4:表示除法): 1
控制台输出:30+40=70
public class Demo9 {
public static void main(String[] args) {
//0. 创建键盘对象
Scanner scanner = new Scanner(System.in);
//1. 使用键盘对象接收数据
System.out.println("请输入第一个整数");
int t1 = scanner.nextInt();
System.out.println("请输入第二个整数");
int t2 = scanner.nextInt();
System.out.println("请输入您要进行的运算(1:表示加法,2:表示减法,3:表示乘法,4:表示除法): ");
int type = scanner.nextInt();
//2. 根据type分情况讨论
switch (type) {
case 1:
System.out.println(t1 + "+" + t2 + "=" + (t1 + t2));
break;
case 2:
System.out.println(t1 + "-" + t2 + "=" + (t1 - t2));
break;
case 3:
System.out.println(t1 + "*" + t2 + "=" + (t1 * t2));
break;
case 4:
System.out.println(t1 + "/" + t2 + "=" + (t1 / t2));
break;
}
}
}
10、【循环+分支】求出1到100之间的既是3的倍数又是5倍数的数字之和
public class Demo10 {
public static void main(String[] args) {
//1. 累加 sum
int sum = 0;
//2. 1到100之间所有的数
for (int i = 1; i <= 100; i++) {
//2. 判断 此数对3并且对5取余都为0
//i % 3 ==0 && i % 5 ==0
if (i % 3 == 0 && i % 5 == 0) {
sum += i;//累加
}
}
//3.打印sum
System.out.println("求出1到100之间的既是3的倍数又是5倍数的数字之和:" + sum);
}
}