Java 基础经典案例
程序员文章站
2022-06-19 21:22:47
...
Java 基础经典案例
适合刚开始学习Java的初学者。
一些简单的小案例。
1.实现金字塔效果
import java.util.Scanner;
// 金字塔 案例
// 从键盘录入 金字塔层数 选择正金字塔或倒金字塔
public class Pyramid {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入金字塔层数:");
int count = scanner.nextInt();
System.out.print("正金字塔 1,倒金字塔 2");
int ch = scanner.nextInt();
switch (ch){
case 1:
function_1(count);
break;
case 2:
function_2(count);
break;
default:
System.out.println("输入有误");
break;
}
scanner.close();
}
public static void function_1(int count){
for (int i = 0; i < count; i++){
for (int j = count-i-1; j > 0;j--){
System.out.print(" ");
}
for (int star = 0; star < (i * 2 + 1); star++){
System.out.print("*");
}
System.out.println();
}
}
public static void function_2(int count){
for (int i = 0; i < count; i++){
for (int j = 0; j < i; j++){
System.out.print(" ");
}
for (int star = 0;star < (2 *(count - i ) - 1); star++){
System.out.print("*");
}
System.out.println();
}
}
}
2. 显示9 9 乘法表
/***
* 99乘法表
*/
public class Table99 {
public static void main(String[] args) {
for (int row = 1; row < 10 ;row++){
for (int column = 1; column <= row; column++){
System.out.print(column + "*" + row + "=" + row*column+"\t");
}
System.out.println();
}
// // 倒 99乘法表
// for (int i = 9; i >= 1; i--){
// for (int j = 1;j<=i;j++){
// System.out.print(j+"*"+i+"="+i*j+"\t");
// }
// System.out.println();
// }
//
}
}
3. 绘画棋盘
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;
/**
* 用窗体展现国际象棋的棋盘
*/
public class QiPan {
public static void main(String[] args) {
JFrame frame = new JFrame("国际象棋");
frame.setSize(415, 435);
// 假设棋盘为20*20
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
JLabel label = new JLabel();
label.setSize(20, 20);
label.setBackground(((i + j) % 2 == 0) ? Color.BLACK
: Color.white);
label.setLocation(20 * i, 20 * j);
// 设置不透明,要不然不会显示
label.setOpaque(true);
frame.add(label);
}
}
// 窗体居中显示
frame.setLocationRelativeTo(null);
// 当窗口关闭程序结束
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 展示棋盘
frame.setVisible(true);
}
}
4. 存钱
/**
*需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,
* 每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
* 请问,经过多少天,小芳才可以存到100元钱
*/
public class CunQian {
public static void main(String[] args) {
//每天给2.5
double dayMoney = 2.5d;
//存起来
double daySum = 0;
//存了几天
int dayCount = 1;
//存多久才能到100元
double result = 100;
while (true){
// 每天开始存钱
daySum += dayMoney;
//超过100 就推出循环
if (daySum >= result){
System.out.println("共用了"+dayCount+"天存够100元。");
break;
}
// 如果是5 的倍数的天数花去6元
if (dayCount % 5 == 0){
daySum -= 6;
System.out.println("第"+dayCount+"天花去6元");
}
dayCount++;
}
}
}
5. 水仙花数
/**
* 水仙花
* 如果一个数的每位数的立方和等于它本身,那么这个数就是水仙花数
* 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
*/
public class Flower {
public static void main(String[] args) {
int dataCount=0;
for (int i = 100; i < 9999; i++){
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i /100;
if (ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
dataCount++;
System.out.println(dataCount+"***水仙花数"+i);
}
}
}
}
6. 阶乘
输入一个数 求它的阶乘
import java.util.Scanner;
/**
* 需求:求5的阶乘。
*/
public class For_JieCheng {
public static void main(String[] args) {
int jc = 1;
System.out.print("请输入要求几的阶乘:");
Scanner scanner = new Scanner(System.in);
int j = scanner.nextInt();
for (int i = 1; i <= j;i++){
jc *= i;
}
System.out.println("5的阶乘:"+jc);
}
}
7. 菱形
public class lingXing {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {// 控制行数
for (int j = 1; j <= 10 - i; j++) {// 控制空格
System.out.print(" ");
}
for (int z = 1; z <= 2 * i - 1; z++) {// 控制*
if (z == 1 || z == 2 * i - 1) {// 打印第一个*和最后一个*,其余的输出空格
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
for (int i = 10; i > 0; i--) {
for (int j = 1; j <= 10 - 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();
}
}
}
8. 素数
/**
* 求素数 不能被2 整除的叫素数
*/
public class SuShu {
public static void main(String[] args) {
int count = 0;
for (int i = 100;i < 200; i++){
if (i % 2 == 0){
continue;
}else {
System.out.println(i+"是素数");
}
count++;
}
System.out.println("一共有"+count+"个素数。");
}
}
9. while循环
/**
* 我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
* 请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
*/
public class WhileDemo {
public static void main(String[] args) {
//定义统计变量,要折叠几次
int count = 0;
//定义初始厚度和总高度,把0.01变成1
double start = 0.1d;
int end = 8844430;
while (start < end ){
// 每折叠一次就累加一次
count++;
//每折叠一次 厚度 * 2
start *= 2;
System.out.println("第:"+count+"折叠,厚度:"+start);
}
System.out.println("一共折叠:"+ count+"次");
}
}
上一篇: 使用JavaScript实现node.js中的path.join方法
下一篇: 牵个手都容易怀孕