一些简单的基础练习,过程可能不是最简单最全面的,欢迎大佬评论改进。
!!!上题目!!!
- 编写程序 ,计算用户输入数据的立方(和while无关,先来个基础练习)
//Java程序本身是没有直接使用Scanner的能力,导包操作
import java.util.Scanner;
class exercise {
public static void main(String[] args) {
System.out.println("请输入一个整数 :");
//需要得到一个Scanner的变量
Scanner sc = new Scanner(System.in);
int num = 0;
//需要得到一个Scanner的
int num = sc.nextInt();
//上述操作可简写为 int num = new Scanner(System.in).nextInt();
int cube = num * num * num;
System.out.println("立方为 :" + cube);
}
}
- 输入一个月数,然后输出对应月份有多少天(不考虑闰年),将天数输出,注意输入
使用Scanner输入。
//导包操作
import java.util.Scanner;
class exercise {
public static void main(String[] args) {
//提示用户输入
System.out.println("请输入一个月份 :");
//获取用户输入的数据
Scanner sc = new Scanner(System.in);
int mouth = sc.nextInt();
//月份不能为0
while (mouth > 0) {
//如果月份为1,3,5,7,8,10,12则显示31天
if (mouth == 1 || mouth == 3 || mouth == 5 ||
mouth == 7 || mouth == 8 || mouth == 10 ||
mouth == 12) {
System.out.println(mouth + "月有31天");
break;
//如果月份为4,6,9,10则为30天
} else if (mouth == 4 || mouth == 6 || mouth == 9 || mouth == 10) {
System.out.println(mouth + "月有30天");
break;
} else if (mouth == 2) {
System.out.println("这个月28天");
break;
}else {
System.out.println("输入有误");
break;
}
}
}
}
个人觉得在 if 判断时代码过于繁琐,不知道怎么改进,大神请留言。
- while 完成9*9 乘法表
class exercise {
public static void main(String[] args) {
int i = 1;
//外层循环控制行数,循环条件 1~9
while (i <= 9) {
int j = 1;
//内层循环 表达式个数等于行数
while (j <= i) {
System.out.print(i + "*" + j + "=" + i*j);
j += 1;
}
i += 1;
System.out.println();
}
}
}
- 将一个正整数进行分解质因数操作 ( 输入:8 输出:2 * 2 * 2)
import java.util.Scanner;
class exercise {
public static void main(String[] args) {
System.out.println("请输入一个整数 :");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
//分解质因数是从2开始除的,所以初始值为2
int j = 2;
/*
假设i == 8,带入2 <= 8条件满足,往下运行,8 % 2 余数为0并且2 !=8 ,输出一个 2 * ,i = 8 / 2 ==4,然后在返回判断,这是j == 2,i == 4,满足添加继续执行,输出2 * ,i = 4 / 2 == 2,回去判定不满足条件,跳出第二个while循环往下运行if,满足条件推出循环并且输出 i,此时i为2.加上之前的输出项,最后结果为2 * 2 * 2
*/
while (j <= i) {
while (i % j == 0 && j != i) {
System.out.print(j + "*");
i /= j;
}
if (i == j) {
break;
}
j += 1;
}
System.out.println(i);
}
}
- 利用循环完成15的阶乘
class exercise {
public static void main(String[] args) {
int i = 1;
int j = 1;
while (i <= 15) {
j *= i;
System.out.println(j);
i += 1;
?
}
}
}
我这个程序最后输出是每一次相乘的结果,我想之输出最后的结果,大神门有没有办法!!
- 逆序数值( 输入:123456 输出:654321)
在这里插import java.util.Scanner;
class exercise {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
int j = 0;
while (i != 0) {
//获取个位数
j = i % 10;
//将获取的个位数输出
System.out.print(j);
//去掉获取的个位数
i = i / 10;
}
}
}
@@今日份学习结束,期待天的到来@@