第一题
语法点:运算符,while,if
编写步骤:
- 定义类 Test1
- 定义 main方法
- 定义变量i为0,i2为10
- 使用第一个while循环,当条件为
i小于5时,则进入循环 - 循环内,i自增,i2自增
- 循环内,使用if判断,当
i大于等于 2并且i2小于15时,同时输出i和i2的值 - 使用第二个while循环,当条件为
i2小于20时,则进入循环 - 循环内,i自增,i2自增
- 循环内,使用if判断,当
i大于8或者i2小于等于18时,同时输出i和i2的值
public class Test1 {
public static void main(String[] args) {
// 1. 定义类 Test1
//2. 定义 main方法
//3. 定义变量i为0,i2为10
int i=0;
int i2 =10;
//4. 使用第一个while循环,当条件为`i小于5` 时,则进入循环
//5. 循环内,i自增,i2自增
while (i<5){
if (i>=2&&i2<15){
System.out.println(i+"->"+i2);
}
i++;
i2++;
}
//6. 循环内,使用if判断,当`i大于等于 2 ` 并且` i2小于15` 时,同时输出i和i2的值
//7. 使用第二个while循环,当条件为`i2小于20` 时,则进入循环
//8. 循环内,i自增,i2自增
//9. 循环内,使用if判断,当`i大于8 ` 或者`i2小于等于18` 时,同时输出i和i2的值
System.out.println("======================");
while (i2<20){
i++;
i2++;
if (i>8||i2<=18){
System.out.println(i+"->"+i2);
}
}
}
}
第二题
语法点:方法,运算符,for,while
编写步骤
定义类 Test2,定义 main方法
main方法中,定义int类型变量 a为1
使用while循环,判断a<=5,进入循环.
while循环内部,使用for循环,初始化int类型变量b为1,当b<=5时进入循环, 步进表达式b++
for循环内,不换行输出i并拼接" "
for循环外,输出换行.
for循环外,a自增.
public class Test2 {
public static void main(String[] args) {
// 1. 定义类 Test2,定义 main方法
//
//2. main方法中,定义int类型变量 a为1
//
int a=1;
//3. 使用while循环,判断a<=5,进入循环.
while (a<=5){
for (int b = 1; b <=5; b++) {
System.out.print(b+" ");
}
System.out.println();
a++;
}
//
//4. while循环内部,使用for循环,初始化int类型变量b为1,当b<=5时进入循环, 步进表达式b++
//
//5. for循环内,不换行输出i并拼接" "
//
//6. for循环外,输出换行.
//
//7. for循环外,a自增.
}
}
第三题
语法点:运算符,for,if
编写步骤
- 定义类 Test5
- 定义 main方法
- 定义变量jj为20,a为0,b为0
- 使用for循环,初始化值ii为0,当
ii<jj时进入循环,步进表达式为ii+=2,jj自减 - 循环内,使用if判断ii被3整除,ii赋值给a,并输出ii拼接"Hello"
- 不被3整除,ii赋值给b,并输出ii拼接"World"
- 循环外,按照格式,打印a与b的乘积
public class Test3 {
public static void main(String[] args) {
// 1. 定义类 Test5
//2. 定义 main方法
//3. 定义变量jj为20,a为0,b为0
int jj = 20;
int a = 0;
int b = 0;
//4. 使用for循环,初始化值ii为0,当`ii<jj` 时进入循环,步进表达式为ii+=2,jj自减
for (int ii = 0; ii < jj; ii += 2, jj--) {
if (ii % 3 == 0) {
a = ii;
System.out.println(ii + "Hell0");
}else {
b = ii;
System.out.println(ii + " World");
}
}
//5. 循环内,使用if判断ii被3整除,ii赋值给a,并输出ii拼接"Hello"
//6. 不被3整除,ii赋值给b,并输出ii拼接"World"
//7. 循环外,按照格式,打印a与b的乘积
System.out.println("a*b=" + (a * b));
}
}
第四题
- 语法点:运算符,for,switch
开发提示:
- 1-12的规律数字,可以使用for循环处理
- 根据不同的数字,匹配显示不同的文字,可以使用switch匹配
public class Test4 {
public static void main(String[] args) {
for (int i = 1; i < 13; i++) {
switch (i){
case 1:
System.out.println(i+"水瓶");
break;
case 2:
System.out.println(i+"双鱼");
break;
case 3:
System.out.println(i+"白羊");
break;
case 4:
System.out.println(i+"金牛");
break;
case 5:
System.out.println(i+"双子");
break;
case 6:
System.out.println(i+"巨蟹");
break;
case 7:
System.out.println(i+"狮子");
break;
case 8:
System.out.println(i+"处女");
break;
case 9:
System.out.println(i+"天秤");
break;
case 10:
System.out.println(i+"天蝎");
break;
case 11:
System.out.println(i+"射手");
break;
case 12:
System.out.println(i+"摩羯");
break;
default:
System.out.println("数据输入错误");
break;
}
}
}
}
第五题
语法点:运算符,for,if
案例需求:从键盘分别输入年、月、日,使用循环for+if实现,判断这一天是当年的第几天
注:判断一年是否是闰年的标准:
1)可以被4整除,但不可被100整除
2)可以被400整除
- 开发提示:
- 循环1-month月
- 在循环中判断该月是31天、30天、28/29天,分别累加
import java.util.Scanner;
public class Test5 {
public static void main(String[] args) {
// 语法点:运算符,for,if
//案例需求:从键盘分别输入年、月、日,使用循环for+if实现,判断这一天是当年的第几天
// 1键盘录入天数年 月 日
Scanner input = new Scanner(System.in);
System.out.println("请输入年:");
int year = input.nextInt();
System.out.println("请输入月份:");
int month = input.nextInt();
System.out.println("请输入天数:");
int day = input.nextInt();
// 首先是判断年份是平年还是闰年
int two_MonthDays = 0;
int all_Days = 0;
int year_Days = 0;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
two_MonthDays = 28;
year_Days = 365;
} else {
two_MonthDays = 29;
year_Days = 366;
}
// 计算到这一天的总的天数 此时如果是一月份只用见天数提取 其实就是月份减一的天数进行相加
switch (month - 1) {
case 11:
all_Days += 30;
case 10:
all_Days += 31;
case 9:
all_Days += 30;
case 8:
all_Days += 31;
case 7:
all_Days += 31;
case 6:
all_Days += 30;
case 5:
all_Days += 31;
case 4:
all_Days += 30;
case 3:
all_Days += 31;
case 2:
all_Days += two_MonthDays;
case 1:
all_Days += 31;
}
all_Days += day;
System.out.println("all_Days = " + all_Days);
}
}
第六题
案例需求:假设从2000年1月1日开始三天打鱼,两天晒网,从键盘输入今天的日期年、月、日,显示今天是打鱼还是晒网?
import java.util.Scanner;
public class Test6 {
public static void main(String[] args) {
// 1键盘录入天数年 月 日
Scanner input = new Scanner(System.in);
System.out.println("请输入年:");
int year = input.nextInt();
System.out.println("请输入月份:");
int month = input.nextInt();
System.out.println("请输入天数:");
int day = input.nextInt();
// 首先是判断年份是平年还是闰年
int two_MonthDays = 0;
int all_Days=0;
int year_Days=0;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
two_MonthDays = 28;
year_Days=365;
} else {
two_MonthDays = 29;
year_Days=366;
}
// 计算到这一天的总的天数 此时如果是一月份只用见天数提取 其实就是月份减一的天数进行相加
switch (month-1){
case 11:
all_Days+=30;
case 10:
all_Days+=31;
case 9:
all_Days+=30;
case 8:
all_Days+=31;
case 7:
all_Days+=31;
case 6:
all_Days+=30;
case 5:
all_Days+=31;
case 4:
all_Days+=30;
case 3:
all_Days+=31;
case 2:
all_Days+=two_MonthDays;
case 1:
all_Days+=31;
}
all_Days+=day;
System.out.println("all_Days = " + all_Days);
// 案例需求:假设从2000年1月1日开始三天打鱼,两天晒网,从键盘输入今天的日期年、月、日,显示今天是打鱼还是晒网
if (all_Days%5>=4){
System.out.println("晒网");
}else {
System.out.println("打鱼");
}
}
}
第七题
- 打印倒三角形,效果如图所示:

开发提示:
- 平面图形涉及到有行有列,考虑到嵌套for循环
- 一个外循环控制行,两个内循环控制输出内容
- 一个内循环负责输出空格,另一个内循环输出"*"
public class Test7 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j <5-i; j++) {
if (j==0){
int k=0;
while (k<i){
System.out.print(" ");
k++;
}
}
System.out.print("* ");
}
System.out.println();
}
}
}
第八题
打印『X』对称图形,效果如图所示:

开发提示:
- 平面图形涉及到有行有列,考虑到嵌套for循环
- 一个外循环控制行,一个内循环控制输出内容
- 在内循环中,根据变量的变化规律,判断输出"O"还是"*"
public class Test8 {
public static void main(String[] args) {
for (int i = 1; i < 8; i++) {
for (int j = 1; j <8 ; j++) {
if (i==j||j==8-i){
System.out.print("O");
}else {
System.out.print("*");
}
}
System.out.println();
}
}
}
第九题
- 打印菱形

开发提示:
- 平面图形涉及到有行有列,考虑到嵌套for循环
- 一个外循环控制行,两个内循环控制输出内容
- 一个内循环负责输出空格,另一个内循环输出"*"
public class Test9_2 {
public static void main(String[] args) {
//上半部分
for(int i=1;i<=5;i++) {//5行
for(int j = 1; j <=5-i; j++) {//左上角空格区域
System.out.print(" ");
}
//打印中间的*和空白等腰三角形
for(int k=1;k<=2*i-1;k++) {
if (k==1||k==2*i-1) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();//换行
}
//打印菱形下半部分
for(int i =4;i>=1;i--) {
//打印左边空心正三角
for(int j=4;j>=i;j--) {
System.out.print(" ");
}
//打印倒置的等腰三角形
for(int k=1;k<=2*i-1;k++) {
if(k==1) {
System.out.print("*");
}else if(k==2*i-1){
System.out.println("*");
}else {
System.out.print(" ");
}
}
}
System.out.println();
}
}
版权声明:本文为weixin_52788247原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。