java基础语法练习
今天在练习java基础语法时,鄙人在网上找到一些比较的经典的习题。今天分享给大家,希望能给小伙伴们提供一点帮助,大家共同学习进步。
九九乘法口诀表
public class Test7 {
public static void main(String[] args) {
for(int i=1;i<=9;i++) {//控制行数
for(int k=1;k<=i;k++) {//控制每行的列数
System.out.print(k+"*"+i+"="+(i*k)+"\t");
}
System.out.println();
}
}
}
互换两个数的值(不允许使用中间变量)
分析:这里的核心实际上就是算法问题
重点在于:理解变量的概念
public class Test8 {
public static void main(String[] args) {
int k1 = 10, k2 = 100;
System.out.println("k1=" + k1 + ",k2=" + k2);
k1=k1+k2;
k2=k1-k2;
k1=k1-k2;
System.out.println("k1=" + k1 + ",k2=" + k2);
}
}
输出三个数中的最大值和最小值
int k1 = 1, k2 = 2, k3 = 3;
int max;
int min = max = k1;
if (max < k2)max = k2;
if (max < k3)max = k3;
if (min > k2)min = k2;
if (min > k3)min = k3;
System.out.println("min:" + min + ",max:" + max);
输出1-100的奇数(每行输出6个)
分析:奇数+2=奇数,而且1-100之间的最小奇数为1
public class Test8 {
public static void main(String[] args) {
int count = 0;
for (int k = 1; k <= 100; k = k + 2) {
System.out.print(k + "\t");
if (++count % 6 == 0)
System.out.println();
}
}
}
菱形
解析:查找规律
空格数为【5-行数】,后续输出的 * 个数为【 2*行数-1 】
上半部分的输出
int k=5;
for(int i=1;i<=k;i++) {
for(int j=0;j<k-i;j++)
System.out.print(" ");
for(int j=0;j<2*i-1;j++)
System.out.print("*");
System.out.println();
}
下半部分输出
for(int i=k-1;i>0;i--) {
for(int j=0;j<k-i;j++)
System.out.print(" ");
for(int j=0;j<2*i-1;j++)
System.out.print("*");
System.out.println();
}
一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)
public class Test9 {
public static void main(String[] args) {
long res = 8;
int count=0;
// 不知道循环次数,所以可以使用while或者do/while
while (true) {
res *= 2;
count++;
if (res > 884813000)
break;
}
System.out.println("共对折了"+count+"次!");
}
}
打印出所有的水仙花数
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3
= 153)
解析:int k=153; int baiWei=k/100;//百位数 int geWei=k%10;//个位数 int shiWei=(k-baiWei*100)/10;//十位数 k/10%10
public class Test9 {
public static void main(String[] args) {
for (int k = 100; k < 1000; k++) {
int baiWei = k / 100;// 百位数
int geWei = k % 10;// 个位数
int shiWei = (k - baiWei * 100) / 10;// 十位数 k/10%10
if (k == baiWei * baiWei * baiWei + geWei * geWei * geWei +
shiWei * shiWei * shiWei) {
System.out.println(k + "是水仙花数!");
}
}
}
}
判断一个数是否质数
质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。例如3、7等
public class Test9 {
public static void main(String[] args) {
int k = 6;
boolean bb = true;
for (int i = 2; i < k / 2; i++) {
if (k % i == 0) {
bb = false;
break;
}
}
if (bb)
System.out.println(k + "是质数");
else
System.out.println(k + "不是质数");
}
}
1-100求和(for while等三种循环写法)
死循环跳出的写法
while(true)----break 一般用于无法提前预知循环次数
public class Test8 {
public static void main(String[] args) {
int res = 0;
int k = 1;
while (true) {
res += k++;
if (k > 100)
break;
}
System.out.println("1+2+3+...+100=" + res);
}
}
do/while—break; 一般不使用do…while(true) 一般用于至少需要执行一次的场景
public class Test8 {
public static void main(String[] args) {
int res = 0;
int k = 1;
do {
res += k++;
if (k > 100)
break;
} while (true);
System.out.println("1+2+3+...+100=" + res);
}
}
for循环
public class Test8 {
public static void main(String[] args) {
int res = 0;
int k = 1;
for(;;) { //三个表达式均为空
res+=k++;
if(k>100)
break;
}
System.out.println("1+2+3+...+100=" + res);
}
}
public class Test8 {
public static void main(String[] args) {
int res = 0;
for (int k = 1;;) {//表达式1不为空,剩余为空
res += k++;
if (k > 100)
break;
}
System.out.println("1+2+3+...+100=" + res);
}
}
public class Test8 {
public static void main(String[] args) {
int res = 0;
for (int k = 1;; k++) {
if (k > 100)
break;
res += k;
}
System.out.println("1+2+3+...+100=" + res);
}
}
以上就是我所整理出来的java基础语法中,一些我认为比较经典的习题。希望有兴趣的小伙伴们在下面认真练习哟!!!
本文地址:https://blog.csdn.net/weixin_53869835/article/details/112210865
上一篇: Flink Source、Sink
下一篇: COM:一种面向群推荐的生成模型