昨天学习了java方法的使用和重载,在今天的编写代码之前首先要学会如何使用Debug操作流程,又称为断点调试,可以有效的对变量进行监控,IDEA插入断点的操作为,在每行的编号后面单击鼠标左键,取消也是同样的操作。
在进行断点调试的时候我们不再用运行按钮,而是用,快捷键是Shift+F9,进行一步一步的调试的快捷键为F7,从Debug窗口可以清楚的展示变量的值。
今天的学习内容大多都是编写实例用于复习之前的知识,编写代码时候的思路都在注释里面。
第一个实例
减肥计划,需求:输入一个星期数,显示今天的减肥活动。
周一:跑步
周二:游泳
周三:慢走
周四:动感单车
周五:拳击
周六:爬山
周日:好好吃一顿
import java.util.*;
public class test {
public static void main(String[] args) {
//键盘录入一个星期数,用一个变量接收
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期数(1-7):");
//从键盘输入的数用一个变量存储
int week = sc.nextInt();
//调用方法
Plan(week);
}
public static void Plan(int week) {
//对星期数进行判断,这里用了switch语句
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("输入的星期数有误");
break;
}
}
}
第二个实例
逢七过:从任意一个数字开始报数,当报的数字包含7或者7的倍数时都要说,过,编写一个程序列出满足1-100会说“过”的所有数字
public class test {
public static void main(String[] args) {
//调用方法
Plan(1);
}
public static void Plan(int i) {
//数据1~100之间,用for循环实现
for (; i <= 100; i++) {
//判断哪些数符合“过”的要求,用或符号连接
if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7) {
//直接输出
System.out.println(i + "是七的倍数或者包含七");
}
}
}
}
第三个实例
不死神兔:有一对兔子,出生后第三个月起每个月都生一堆兔子,小兔子长到第三个月后又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?
public class test {
public static void main(String[] args) {
//定义一个数组用动态初始化来进行,长度为月份的20
int[] arr = new int[20];
//已知前两个月的兔子的数量都为1,在数组中表示出来
arr[0] = 1;
arr[1] = 1;
//用循环实现每个月兔子的对数
for(int i=2;i<arr.length;i++){
//我们已知数组的规律是从第三个月开始兔子的数量为前两个数量的和
//这是经典的数学问题斐波那契数列
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("在第20个月后有"+arr[19]+"只兔子");
}
}
第四个实例
百钱百鸡:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问鸡翁,鸡母鸡雏各几何?
public class test {
public static void main(String[] args) {
//定义一个变量用于表示鸡翁的数量,鸡翁为5文一只,最大数量为50
for (int x = 0; x <= 20; x++) {
//定义一个变量用于表示鸡母的数量,鸡母为3元一只,最大数量为33只
for (int y = 0; y <= 33; y++) {
//定义一个变量表示鸡雏,鸡雏数量为100减去鸡翁和鸡母
int z = 100 - y - x;
//判断鸡雏的数量为整数,且三种鸡的价格加起来刚刚好等于100
if (z % 3 == 0 && 5 * x + 3 * y + z / 3 == 100) {
//对得到的数据进行输出
System.out.println("鸡翁有" + x + ",鸡母有" + y + ",鸡雏有" + z);
}
}
}
}
}
第五个实例
数组元素求和:有这样一个数组{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和,要求和的元素十位都不能是7,并且只能是偶数。
public class test {
public static void main(String[] args) {
//定义一个静态数组
int[] arr = {68, 27, 95, 88, 171, 996, 51, 210};
//定义好数组和的变量并初始化
int sum = 0;
//对数组进行遍历
for (int i = 0; i < arr.length; i++) {
//判断满足条件的元素
if (arr[i] % 2 == 0 && arr[i] / 10 != 7 && arr[i] % 10 != 7) {
sum += arr[i];
}
}
System.out.println("满足条件的数组和为" + sum);
}
}
第六个实例
数组内容相同:设计一个方法,用于比较两个数组内容是否相同
public class test {
public static void main(String[] args) {
//定义两个个静态数组
int[] arr1 = {11, 22, 33, 44, 55};
int[] arr2 = {11, 22, 33, 44, 55};
//调用方法,方法里面没有输出这里就要写输出
boolean flag = Compare(arr1, arr2);
System.out.println(flag);
}
public static boolean Compare(int[] arr1, int[] arr2) {
//判断两个数组的长度是否一致
if (arr1.length != arr2.length) {
return false;
}
//判断数组里面的元素是否一致
for (int i = 0; i < arr1.length; i++) {
if (arr1[i] != arr2[i]) {
return false;
}
}
return true;
}
}
第七个实例
查找:已知一个数组arr={19,28,37,46,50};键盘录入一个数据,查找该数据在数组中的索引,并且在控制台输出找到的索引值
数据 | 19 | 28 | 37 | 46 | 50 |
---|---|---|---|---|---|
索引 | 0 | 1 | 2 | 3 | 4 |
import java.util.*;
public class test {
public static void main(String[] args) {
//定义一个静态数组
int[] arr = {19,28,37,46,50};
//从键盘接受一个变量
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数:");
//给接受的变量进行初始化
int number=sc.nextInt();
//定义一个索引变量,初始值为-1
int index=-1;
for(int i=0;i<arr.length;i++){
if(arr[i]==number){
index=i;
break;
}
}
System.out.println("index="+index);
}
}
第八个实例
反转:已知一个数组arr={19,28,37,46,50};用程序实现把数组中的元素值交换,交换后的数字在控制台中输出数组元素
public class test {
public static void main(String[] args) {
//定义一个静态数组
int[] arr = {19, 28, 37, 46, 50};
//用一个for循环来交换数组中的元素
for (int i = 0, j = arr.length - 1; j >= i; i++, j--) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
//调用函数
printArray(arr);
}
//定义一个输出数组的函数
public static void printArray(int[] arr) {
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]);
}
}
}
第九个实例
评委打分:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数,选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均值(不考虑小数)
import java.util.*;
public class test {
public static void main(String[] args) {
//定义一个数组对他进行动态初始化,长度为6
int[] arr = new int[6];
Scanner sc = new Scanner(System.in);
//用循环接受键盘输入的六个评委的分数
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入第" + (i + 1) + "个评委的评分:");
arr[i] = sc.nextInt();
}
//调用获取最小数值的函数
int min = Min(arr);
//调用获取最大数值的函数
int max = Max(arr);
//调用获取和的函数,并对成绩进行计算
int sum = (Sum(arr) - min - max) / 4;
System.out.println("选手的分数为" + sum);
}
public static int Min(int[] arr) {
int min = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
public static int Max(int[] arr) {
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
public static int Sum(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
}
今天的java学习就到这里啦 ,题外话几句,IDEA自动排版的快捷键Ctrl+Alt+L和QQ热键和网易云音乐的热键都有重复的,大家使用的时候记得改一下。