Java基礎(chǔ)入門篇之邏輯控制練習(xí)題與猜數(shù)字游戲
1. if語(yǔ)句練習(xí)
判斷一個(gè)年份是否為閏年
int year = 2000;
if (year % 100 == 0) {
// 判定世紀(jì)閏年
if (year % 400 == 0) {
System.out.println("是閏年");
} else {
System.out.println("不是閏年");
}
} else {
// 普通閏年
if (year % 4 == 0) {
System.out.println("是閏年");
} else {
System.out.println("不是閏年");
}
}2. while循環(huán)練習(xí)
1. 計(jì)算 5 的階乘
5!= 5 * 4 * 3 * 2 * 1
int n = 1;
int ret = 1;
while(n <= 5){
ret = ret * n;
n++;
}
System.out.println(ret);運(yùn)行結(jié)果:

2. 計(jì)算 1! + 2! + 3! + 4! + 5!
我們基于上一題的代碼,在寫一個(gè)循環(huán),使得可以求到5的階乘,再把他們相加,代碼如下所示:
int k =1;
int sum = 0;
// 外層循環(huán)負(fù)責(zé)求階乘的和
while(k <= 5) {
int n = 1;
int ret = 1;
// 里層循環(huán)負(fù)責(zé)完成求階乘的細(xì)節(jié).
while (n <= k) {
ret = ret * n;
n++;
}
k++;
sum = sum + ret;
}
System.out.println(sum);運(yùn)行結(jié)果:

3. for循環(huán)練習(xí)
1. 計(jì)算 5 的階乘
int result = 1;
for (int i = 1; i <= 5; i++) {
result *= i;
}
System.out.println("result = " + result);運(yùn)行結(jié)果:

2. 計(jì)算 1! + 2! + 3! + 4! + 5!
int sum = 0;
for (int i = 1; i <= 5; i++) {
int tmp = 1;
for (int j = 1; j <= i; j++) {
tmp *= j;
}
sum += tmp;
}
System.out.println("sum = " + sum);
運(yùn)行結(jié)果:

4.總結(jié)練習(xí)
1. 判定一個(gè)數(shù)字是否是素?cái)?shù)
如果能夠整除2~根號(hào)n之間所有的數(shù),那么他就不是素?cái)?shù)

代碼演示:
public class TestDemo {
public static void main(String[] args) {
int n = 19;
int i = 2;
for (; i <=Math.sqrt(n) ; i++) {
if (n % i == 0){
break;
}
}
//有兩種情況 1、 不符合循環(huán)條件 2、因?yàn)橛龅搅?break
if (i > Math.sqrt(n)){
System.out.println(n + " 是素?cái)?shù)! ");
}
}
}運(yùn)行結(jié)果:

2. 打印 1 - 100 之間所有的素?cái)?shù)
for (int n = 1; n <= 100; n++) {
//int n = 9;
int i = 2;
for (; i <= Math.sqrt(n); i++) {
if(n % i == 0) {
break;
}
}
//有幾種情況 ? 2--》 1、 不符合循環(huán)條件 2、因?yàn)橛龅搅?break
if(i > Math.sqrt(n)) {
System.out.println(n + " 是素?cái)?shù)! ");
}
}打印結(jié)果:

3. 求出0~999之間的所有“水仙花數(shù)”并輸出。
(“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字的立方和確好等于該數(shù)本身,如: 153=13+53+3^3 ,則153是一個(gè)“水仙花數(shù)”。)
我們先來(lái)了解一下水仙花數(shù)是什么,如圖所示:

常見的水仙花數(shù):

代碼演示:
for (int i = 1; i <= 999999; i++) {
//i == 123
int count = 0;//記錄位數(shù)
int tmp = i;
while (tmp != 0) {
tmp /= 10;
count++;
}
tmp = i;//123
int sum = 0;
while (tmp != 0) {
sum += Math.pow(tmp % 10, count);
tmp /= 10;
}
if (sum == i) {
System.out.println(i);
}
}獲取一個(gè)數(shù)二進(jìn)制序列中所有的偶數(shù)位和奇數(shù)位,分別輸出二進(jìn)制序列。
代碼演示:
int n = -1;
int count = 0;
while (n != 0) {
n = n & (n-1);
count++;
}
System.out.println(count);5.猜數(shù)字游戲
public class TestDemo {
public static void main(String[] args) {
Random random = new Random();
Scanner scanner = new Scanner(System.in);
int randNum = random.nextInt(101);//[0,101)
//50-100的隨機(jī)數(shù) random.nextInt(50)--[0,50) + 50;
while(true){
System.out.println("請(qǐng)輸入你要猜的數(shù)字");
int sum = scanner.nextInt();
if(sum < randNum){
System.out.println("猜小了");
}else if(sum == randNum){
System.out.println("猜對(duì)了");
break;
}else{
System.out.println("猜大了");
}
}
}
}運(yùn)行結(jié)果:

總結(jié)
到此這篇關(guān)于Java基礎(chǔ)入門篇之邏輯控制練習(xí)題與猜數(shù)字游戲的文章就介紹到這了,更多相關(guān)Java邏輯控制練習(xí)題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Spring 兩種注入的方式(Set和構(gòu)造)實(shí)例
本篇文章主要介紹了Spring 兩種注入的方式(Set和構(gòu)造)實(shí)例,Spring框架主要提供了Set注入和構(gòu)造注入兩種依賴注入方式。有興趣的可以了解一下。2017-02-02
MyBatis批量操作XML的完整實(shí)現(xiàn)方案
本文介紹了MyBatis通過(guò)XML映射文件實(shí)現(xiàn)批量插入、更新和刪除的完整方案,包括單條SQL批量插入、批量插入并返回主鍵、批量更新、批量刪除以及動(dòng)態(tài)批量操作,最后,分享了最佳實(shí)踐建議,需要的朋友可以參考下2025-12-12
spring cglib 與 jdk 動(dòng)態(tài)代理
本篇文章主要介紹了spring cglib與jdk動(dòng)態(tài)代理的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-05-05
Spring?Cloud?Ribbon?負(fù)載均衡使用策略示例詳解
Spring?Cloud?Ribbon?是基于Netflix?Ribbon?實(shí)現(xiàn)的一套客戶端負(fù)載均衡工具,Ribbon客戶端組件提供了一系列的完善的配置,如超時(shí),重試等,這篇文章主要介紹了Spring?Cloud?Ribbon?負(fù)載均衡使用策略示例詳解,需要的朋友可以參考下2023-03-03
Java求解兩個(gè)非負(fù)整數(shù)最大公約數(shù)算法【循環(huán)法與遞歸法】
這篇文章主要介紹了Java求解兩個(gè)非負(fù)整數(shù)最大公約數(shù)算法,結(jié)合實(shí)例形式分析了java求解最大公約數(shù)的實(shí)現(xiàn)方法,并附帶了循環(huán)法與遞歸法算法思路,需要的朋友可以參考下2018-03-03

