您的位置:首页 > 编程语言 > Java开发

JAVA编程题(持续更新中。。。)

2020-06-06 06:28 363 查看

for循环练习1

在控制台输出1-5和5-1的数据

public class Demo02Practice {
public static void main(String[] args) {
//在控制台输出1-5
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
// 5-1的数据
for (int i = 5; i > 0; i--) {
System.out.println(i);
}

}
}

for循环练习2

求1-5之间的数据和,并把求和结果在控制台输出
public class Demo03Practice {
public static void main(String[] args) {
//求1-5之间的数据和,并把求和结果在控制台输出
//1:定义一个变量用来存储和。
int sum = 0;
//2:借助for循环提供1~5的数字
for (int i = 1; i < 6; i++) {
//3:在循环内部进行完成累加操作。
//sum = sum +i;
sum += i;
}
//4:打印求和结果
System.out.println("sum = " + sum);
}
}

for循环练习3

/*
求1-100之间的偶数和,并把求和结果在控制台输出
*/
public class Demo04Practice {
public static void main(String[] args) {
//1:定义一个变量保存累加的和
int sum = 0;
//2:借助for循环提供1~100的数字
for (int i = 1; i <=100 ; i++) {
//3:循环内部判断是否为偶数,如果为偶数进行累加,否则不做任何操作。
if (i % 2 == 0) {
//偶数:如果一个数能够被2整除,就是偶数【对2取余为0】
sum+=i;
}
}
//4:循环结束,打印累加结果
System.out.println("sum = " + sum);

}
}

for循环练习4
【难点】如何获取个,十,百位的数据

public class Demo05 {
public static void main(String[] args) {
int num1 = 54123;

//个:只要对10取余即可
System.out.println(num1%10); //3
//十:把十位转换位个位【先除10,再模10】
System.out.println(num1/10%10);//2
//百:把百位转换为个位【除100】
System.out.println(num1/100%10);//1
//千
System.out.println(num1/1000%10);//4
//万
System.out.println(num1/10000%10); //5

}
}

for循环练习4

在控制台输出所有三位数的“水仙花数”
什么是水仙花数?水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数
例如 153 3*3*3 + 5*5*5 + 1*1*1 = 153

/*
在控制台输出所有三位数的“水仙花数”
什么是水仙花数?水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数
例如 153 3*3*3 + 5*5*5 + 1*1*1 = 153
*/
public class Demo06Practice {
public static void main(String[] args) {
//1:借助for循环获取所有的三位数
for (int i = 100; i < 1000; i++) {
//2:在循环内部完成对数字的个十百位数字获取,
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100 % 10;
// 立方求和与数字对比是否相等,
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
//相等即水仙花数
System.out.println(i);
}

}
}
}

while循环练习:珠穆朗玛峰

/*
需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。
请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
*/
public class Demo02Practice {
public static void main(String[] args) {
//1:初始化数据,定义变量保存,山高,纸厚,折叠次数
int mh = 8844430;//山高
double ph = 0.1;//纸厚
int count = 0; //次数
//2:循环折叠纸,当纸厚小于山高继续折纸,直到纸厚大于等于山高停止折叠
while (ph < mh) {
//3:次数+1,纸厚*=2
count++;
ph *= 2;

}
//4:打印次数,纸厚
System.out.println("折叠次数:" + count);//27
System.out.println("纸厚:" + ph); //13421772.8    E7
//                                  8844430
}
}

死循环while练习【猜数字游戏】

/*
先随机提供一个[1,100]之间的随机数,使用num保存。
玩家猜数字,为guessNum
如果大了,提示大了
如果小了,提示小了
如果猜对了,游戏结束

直到猜对为止
*/
public class Demo01 {
public static void main(String[] args) {
//1:使用Random生成一个随机数,使用num保存。
Random rd = new Random();
//[1,100] = [0,99]+1
int num = rd.nextInt(100)+1;

while (true) {
//2:使用Scanner键盘输入用户猜的数值,用guessNum
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要猜的数值:");
int guessNum = sc.nextInt();
//3:比较guessNum和num
if (guessNum > num) {
//如果大了,提示大了
System.out.println("不好意思,您猜大了"+guessNum);
} else if (guessNum < num) {
//如果小了,提示小了
System.out.println("不好意思,您猜小了" + guessNum);
} else {
//如果猜对了,游戏结束
System.out.println("恭喜您,猜对了" + guessNum);
break;//猜对了就结束游戏
}
}

}
}

基础练习1:减肥计划if版本
键盘录入
if-else

package com.review.减肥计划if版本;

import java.util.Scanner;

/*
* 案例需求
输入星期数,显示今天的减肥活动
周一:跑步
周二:游泳
周三:慢走
周四:动感单车
周五:拳击
周六:爬山
周日:好好吃一顿
* */
public class demo {
public static void main(String[] args) {
//        1.借助Scanner输入一个星期数,使用week接受
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个星期数:");
int week = sc.nextInt();

//      2.借助if判断语句判断week的值,对应输出活动内容
if (week == 1) {
System.out.println("周一:跑步");
} else if (week == 2) {
System.out.println("周二:游泳");
} else if (week == 3) {
System.out.println("周三:慢走");
} else if (week == 4) {
System.out.println("周四:动感单车");
} else if (week == 5) {
System.out.println("周五:拳击");
} else if (week == 6) {
System.out.println("周六:爬山");
} else if (week == 7) {
System.out.println("周日:好好吃一顿");
}else {
System.out.println("输入的数字无效!");
}
}
}

基础练习2:减肥计划switch版本
switch
Scanner

package com.review.减肥计划switch版本;

import java.util.Scanner;

/*
* 案例需求
输入星期数,显示今天的减肥活动
周一:跑步
周二:游泳
周三:慢走
周四:动感单车
周五:拳击
周六:爬山
周日:好好吃一顿
1)借助Scanner输入一个星期数,使用week接收
2)借助switch判断语句进行判断week的值,对应输出活动内容

switch:接收的类型,byte short char int String【字符串】 Enum[枚举]
* */
public class demo {
public static void main(String[] args) {

//   1)借助Scanner输入一个星期数,使用week接收
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个星期数:");
int week = sc.nextInt();

//    2)借助switch判断语句进行判断week的值,对应输出活动内容
switch (week) {
case 1:
System.out.println("周一:跑步");
break;
case 2:
System.out.println("周二:游泳");
break;
case 3:
System.out.println("周三:慢走");
break;
case 4:
System.out.println("周四:动感单车");
break;
case 5:
System.out.println("周五:拳击");
break;
case 6:
System.out.println("周六:爬山");
break;
case 7:
System.out.println("周日:好好吃一顿");
break;
default:
System.out.println("输入的数字无效!");
}
}
}

基础练习3(continue):继续【逢七过练习】

/*
逢7过
*/
public class Demo02 {
public static void main(String[] args) {
for (int i = 1; i < 100; i++) {
//逢7过:7的倍数,含有7
if ((i % 7 == 0) || (i % 10 == 7 || i / 10 % 10 == 7)) {
//7的倍数     ||  含有7
System.out.println("过");
continue; //结束当次循环,继续下一次循环
}
System.out.println(i);
}
}
}

基础练习4:不死神兔

package com.review.不死神兔;
/*
* 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔
* 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问
* 第二十个月的兔子对数为多少?
* */
public class demo {
public static void main(String[] args) {
//        1)定义一个长度为20的int数组,用来保存兔子数
int[] rabbits = new int[20];

//        2)第一个月1对,第二个月1对
rabbits[0] = 1;
rabbits[1] = 1;

//        3)借助for循环进行给第三个月后的兔子数赋值
for (int i = 2; i < rabbits.length; i++) {
rabbits[i] = rabbits[i-1] + rabbits[i-2];
}

//        4)取第20个元素打印
for (int i = 0; i < rabbits.length; i++) {
System.out.println("第" + (i+1) + "个月的兔子对数为:" + rabbits[i]);
}
}
}

基础练习5:九九乘法表的打印

  • 嵌套循环:循环体里面还有循环
    for的嵌套的循环
package com.review.九九乘法表的打印;

public class demo {
public static void main(String[] args) {

print99();
System.out.println("======");
print99Half();
}

public static void print99() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.print(i + "x" + j + "=" + i*j + "\t");
}
System.out.println();
}
}

public static void print99Half() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i + "x" + j + "=" + i*j + "\t");
}
System.out.println();
}
}
}

基础练习6:数组元素求和
数组的遍历
for循环
if判断
逻辑运算符

package com.review.数组元素求和;
/*
* 有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。求出
* 该数组中满足要求的元素和。要求:求和的元素个位和十位都不能
* 是7,并且只能是偶数
* */
public class demo {
public static void main(String[] args) {
//         1:定义已知数值
int[] arr = {68, 27, 95, 88, 171, 996, 51, 210};

//         2:定义一个变量用来保存和结果[sum]
int sum = 0;

//        3:遍历数组
for (int i = 0; i < arr.length; i++) {
//             取出元素的值,判断是否满足要求,如果满足累加,否则不处理
int num = arr[i];
//             求和的元素个位和十位都不能是7,并且只能是偶数
if ((num%10 != 7 && num/10%10 != 7) && num%2==0) {
//个位和十位都不能是7    &&          只能是偶数
sum += num;
}
}
//        4:打印结果
System.out.println("sum = " + sum);  //1362
}
}

基础练习7:判断两个数组是否相同

package com.review.判断两个数组是否相同;

/*
* 定义一个方法,用于比较两个int数组的内容是否相同
*
* 定义方法三个明确:
* 1.返回值类型: Boolean
* 2.方法名:compare
* 3.参数列表  几个? 什么类型? 比较两个int数组
* */
public class demo {

public static void main(String[] args) {

int[] arr1 = {1,2,3};
int[] arr2 = {1,2,3};

System.out.println(compare(arr1, arr2));
}

public static boolean compare(int[] arr1, int[] arr2) {
if (arr1.length != arr2.length) {
//            长度不相同,return false
return false;
} else {
//            长度相同,对应索引的元素值也要相同,否则两个数组不相等
//            遍历数组,比较对应索引的元素值
for (int i = 0; i < arr1.length; i++) {
if (arr1[i] != arr2[i]) {
//                    只要有一个元素不相同,两个数组不相等
return false;
}
}
}
//        元素都相同,返回true
return true;
}
}

基础练习8:查找元素在数组中出现的索引位置

package com.review.查找元素在数组中出现的索引位置;

import java.util.Scanner;

/*
* 已知一个数组 arr = {19, 28, 37, 46, 50};
键盘录入一个数据,查找该数据在数组中的索引。
并在控制台输出找到的索引值。如果没有查找到,则输出-1
*
* 定义一个方法,传入一个数组一个元素,返回元素在数组中的索引,如果没有返回-1
* */
public class demo {
public static void main(String[] args) {
//        已知一个数组 arr = {19, 28, 37, 46, 50};
int[] arr = {19, 28, 37, 46, 50};
//        键盘录入一个数据,查找该数据在数组中的索引
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要查找的元素:");
int num = sc.nextInt();

//        调用方法,获取索引
int index = getIndex(arr, num);
System.out.println("index = " + index);
}

public static int getIndex(int[] arr,int e) {
//        1.遍历数组中的元素,取出元素和传入的参数e进行比较
for (int i = 0; i < arr.length; i++) {
if (arr[i] == e) {
//                2.如果相同,返回索引
return i;
}
}
return -1;
}
}

基础练习9:数组元素反转

package com.review.数组元素反转;
/*
* 已知一个数组 arr = {1, 2, 3, 4, 5}; 用程序实现把数
* 组中的元素值交换, 交换后的数组 arr = {5, 4, 3, 2, 1};
* 并在控制台输出交换后的数组元素。
* */
public class demo {
public static void main(String[] args) {
//        已知数组
int[] arr = {1, 2, 3, 4, 5};
//        反转数组:对称位置元素进行交换
for (int min = 0,max = arr.length - 1; min < max; min++,max--) {
//            arr[min] arr[max]
int temp = arr[min];
arr[min] = arr[max];
arr[max] = temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}

基础练习10:评委打分

package com.review.评委打分;

import java.util.Scanner;

/*
* 在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。
* */
public class demo {
public static void main(String[] args) {
//        1.定义一个长度为6的int类型的数组,用来保存评委的分数
int[] scores = new int[6];

//        2.借助Scanner录入分数到各个元素中
Scanner sc = new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.println("第" + (i+1) + "位评委评分:");
scores[i] = sc.nextInt();
}

//        3.定义一个方法求总分
int sum = getSum(scores);

//        4.定义一个方法求最高分
int max = getMax(scores);

//        5.定义一个方法求最低分
int min = getMin(scores);

//        6.平均分 = (总分 - 最高分 - 最低分)/4
int avg = (sum - max - min)/4;

//        7.打印平均分
System.out.println("avg = " + avg);
}

//        3.定义一个方法求总分
public static int getSum(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}

//        4.定义一个方法求最高分
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
return max;
}

//        5.定义一个方法求最低分
public static int getMin(int[] arr) {
int min = arr[0];
for (int i = 0; i < arr.length; i++) {
if (min > arr[i]) {
min = arr[i];
}
}
return min;
}
}

嵌套循环

/*
循环体中还有循环

打印一天中的24小时的每一分钟

如果要结束外层循环,可以加标记
要结束那个循环,只要在break后面加上该标记即可.

*/
public class Demo01 {
public static void main(String[] args) {
h:for (int hour = 0; hour < 24; hour++) {
//System.out.println("hour = " + hour);

m: for (int min = 0; min < 60; min++) {
System.out.println(hour+" : " + min);

if (min == 5) {
// break m;//结束内层循环
break h;//结束外层循环
}

}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: