java基础语法练习

2022-07-25,,

今天在练习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

《java基础语法练习.doc》

下载本文的Word格式文档,以方便收藏与打印。