條件判斷與循環(huán):
--求n的階層
- 主要使用知識點:if-else和for循環(huán)
public void getN() {
Scanner sc = new Scanner(System.in);
// 判斷輸入的是否是整數(shù)
if (sc.hasNextInt()) {
System.out.println("請輸入一個數(shù):");
//獲取用戶輸入的值
int n = sc.nextInt();
double sum = 1;
if (n > 0) {
for (int i = 1; i <= n; i++) {
sum *= i;
}
} else {
System.out.println("負(fù)數(shù)沒有階層镜豹!");
}
System.out.println(sum);
}
sc.close();
}
-- 猜數(shù)字游戲
- 主要使用知識點:if-elseif-else和while()循環(huán)以及部分swing的相關(guān)知識點
public void numRiddle() {
int num = 0; // 輸入值
int min = 0; // 最小值
int max = 100; // 最大值
int count = 1; // 猜的次數(shù)
int answer = (int) (Math.random() * 100 + 1); // 隨機(jī)數(shù)
try {
String str = JOptionPane.showInputDialog("我給了你一個1~100之間的整數(shù)蜈垮,你猜猜是多少呢?");
// 將String類型轉(zhuǎn)換為整形
num = Integer.parseInt(str);
while (num != answer) {
count++;
if (num < answer) {
min = num;
// 輸入彈出框
str = JOptionPane.showInputDialog("猜錯了郁季,在" + min + "-" + max + "之間");
num = Integer.parseInt(str);
} else if (num > answer) {
max = num;
str = JOptionPane.showInputDialog("猜錯了,在" + min + "-" + max + "之間");
num = Integer.parseInt(str);
}
}
JOptionPane.showMessageDialog(null, "恭喜你答對了,你一共猜了" + count + "次");
} catch (Exception e) {
// 退出系統(tǒng)
System.exit(0);
}
}
-- 最大公約數(shù)和最小公倍數(shù)
- 主要是使用知識點:for循環(huán)和if語句
public void exNum() {
Scanner sc = new Scanner(System.in);
System.out.print("請輸入兩個數(shù):");
int num1 = sc.nextInt();
int num2 = sc.nextInt();
int max = 0;// 最大公約數(shù)
int min = 0;// 最小公倍數(shù)
// 獲取最大公約數(shù)
for (int i = 1; i < (num1 < num2 ? num2 : num1); i++) {
if (num1 % i == 0 && num2 % i == 0) {
max = i;
}
}
// 最小公倍數(shù)(兩數(shù)相乘,除以最大公約數(shù))
min = (num1 * num2) / max;
System.out.println("最大公約數(shù):" + max + ";最小公倍數(shù):" + min);
sc.close();
}
-- Craps賭博游戲:兩顆色子
- 主要是使用知識點:if-elseif-elseif-else和do-while
- 該題存在嵌套循環(huán)和嵌套條件判斷
public void game() {
int gameMoney = 1000; // 玩家初始金額
int onePoints = 0; // 第一次的點數(shù)
int points1 = 0; // 第一個色子的點數(shù)
int points2 = 0; // 第二個色子的點數(shù)
int points = 0; // 兩個色子點數(shù)的和
int count = 0; // 甩色子的次數(shù)
boolean flag = false;
Scanner sc = new Scanner(System.in);
do {
count++;
System.out.println("你的總資產(chǎn):" + gameMoney);
int bet = 0;
do {
System.out.println("請下注:");
bet = sc.nextInt();
} while (bet > 0 && bet > gameMoney);
points1 = (int) (Math.random() * 6 + 1); // 第一個色子
points2 = (int) (Math.random() * 6 + 1); // 第二個色子
onePoints = points1 + points2;
if (onePoints == 7 || onePoints == 11) {
gameMoney += bet;
System.out.println("恭喜你勝出了!當(dāng)前點數(shù)是:" + onePoints);
} else if (onePoints == 3 || onePoints == 12 || onePoints == 2) {
gameMoney -= bet;
System.out.println("不好意思你輸了蹦渣,回家賣房吧!當(dāng)前點數(shù)是:" + points);
} else {
flag = true;
System.out.println("該局不輸不贏,游戲繼續(xù)貌亭!當(dāng)前點數(shù)是:" + points);
while (flag) {
points1 = (int) (Math.random() * 6 + 1); // 第一個色子
points2 = (int) (Math.random() * 6 + 1); // 第二個色子
points = points1 + points2;
if (points == 7) {
gameMoney -= bet;
flag = false;
System.out.println("不好意思你輸了柬唯,回家賣房吧!當(dāng)前點數(shù)是:" + points);
} else if (points == onePoints) {
gameMoney += bet;
flag = false;
System.out.println("恭喜你勝出了!當(dāng)前點數(shù)是:" + points);
} else {
System.out.println("該局不輸不贏圃庭,游戲繼續(xù)锄奢!當(dāng)前點數(shù)是:" + points);
}
}
}
} while (gameMoney > 0);
System.out.println("游戲結(jié)束!");
System.out.println("你一共甩了" + count + "次");
sc.close();
}
-- 求1-100之間的素數(shù)
- 主要使用知識點:
1.for循環(huán)剧腻、if條件判斷拘央、break跳出本次循環(huán)、return返回以及Math.sqrt()求根號方法
2.方法調(diào)用
// 求1-100之間的素數(shù)
public static void suShu() {
for (int i = 1; i < 100; i++) {
// 調(diào)用tongSuShu(),獲取返回的boolean類型的值
boolean flag = tongSuShu(i);
if (flag) {
System.out.print(i + ",");
}
}
}
public static boolean tongSuShu(int i) {
boolean flag = true;
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
flag = false;
// 跳出本次循環(huán)
break;
}
}
//返回布爾類型的值
return flag;
}
-- 九九乘法表
- 主要使用知識點:
public void multiplicationTable() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
// 格式化輸出
System.out.printf("%d*%d=%d\t", j, i, j * i);
}
System.out.println("");
}
}