java基础-day6
第06天 java基础语法
今日内容介绍
u Eclipse断点调试
u 基础语法的练习
第1章 Eclipse断点调试
1.1 Eclipse断点调试概述
Eclipse的断点调试可以查看程序的执行流程和解决程序中的bug
1.2 Eclipse断点调试常用操作:
A:什么是断点:
就是一个标记,从哪里开始。
B:如何设置断点:
你想看哪里的程序,你就在那个有效程序的左边双击即可。
C:在哪里设置断点:
哪里不会点哪里。
目前:我们就在每个方法的第一条有效语句上都加。
D:如何运行设置断点后的程序:
右键 -- Debug as -- Java Application
E:看哪些地方:
Debug:断点测试的地方
在这个地方,记住F6,或者点击也可以。一次看一行的执行过程。
Variables:查看程序的变量变化
ForDemo:被查看的源文件
Console:控制台
F:如何去断点:
再次双击即可
找到Debug视图,Variables界面,找到Breakpoints,并点击,然后看到所有的断点,最后点击那个双叉。
1.2.1 案例代码一:
package com.itheima;
/*
* 断点调试:
* A:查看程序的执行流程
* B:调试程序
*
* 断点:
* 其实就是一个标记
*
* 在哪里加呢?
* 想加哪里就加哪里,一般是加在我们看不懂的地方
*
* 如何加呢?
* 在代码区域的最左边双击即可
*
* 如何运行加断点的程序呢?
* 代码区域 -- 右键 -- Debug as -- Java Application
* 会弹出一个页面让我们选择是否进入debug模式,选择yes。
*
* 如何让程序往下执行呢?
* Step Over 执行下一步
* F6
*
* 看那些区域呢?
* 代码区域:看程序的执行步骤
* Debug区域:看程序的执行步骤
* Variables:看变量的创建,赋值,销毁等
* Console:看程序的输入和输出
*
* 如何去除断点:
* A:把加断点的动作再来一遍
* B:在debug视图中,找到Breakpoints,选中断点,点击双x即可
*/
public class DebugDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = a + b;
System.out.println(c);
}
}
1.3 断点调试练习
1.3.1 案例代码二:
package com.itheima;
/*
* 需求:看循环的执行流程(1-5求和案例)
*/
public class DebugTest {
public static void main(String[] args) {
// 定义求和变量
int sum = 0;
// 循环获取每一个数据
for (int x = 1; x <= 5; x++) {
sum += x;
}
System.out.println("sum:" + sum);
}
}
1.3.2 案例代码三:
package com.itheima;
import java.util.Scanner;
/*
* 需求:看方法的调用流程
*
* 有方法调用的时候,要想看到完整的流程,每个方法都要加断点,建议方法进入的第一条有效语句加断点
*/
public class DebugTest2 {
public static void main(String[] args) {
// 创建对象
Scanner sc = new Scanner(System.in);
// 接收数据
System.out.println("请输入第一个数据:");
int a = sc.nextInt();
System.out.println("请输入第二个数据:");
int b = sc.nextInt();
// 调用方法
int result = sum(a, b);
// 输出结果
System.out.println("result:" + result);
}
// 求和方法
public static int sum(int a, int b) {
return a + b;
}
}
1.3.3 案例代码四:
package com.itheima;
/*
* 参数是基本数据类型:
* 形式参数的改变不影响实际参数。
*/
public class DebugTest3 {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a:" + a + ",b:" + b);
change(a, b);
System.out.println("a:" + a + ",b:" + b);
}
public static void change(int a, int b) {
System.out.println("a:" + a + ",b:" + b);
a = b;
b = a + b;
System.out.println("a:" + a + ",b:" + b);
}
}
1.3.4 案例代码五:
package com.itheima;
/*
* 参数是基本数据类型:
* 形式参数的改变不影响实际参数。
*/
public class DebugTest3 {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a:" + a + ",b:" + b);
change(a, b);
System.out.println("a:" + a + ",b:" + b);
}
public static void change(int a, int b) {
System.out.println("a:" + a + ",b:" + b);
a = b;
b = a + b;
System.out.println("a:" + a + ",b:" + b);
}
}
第2章 基础语法的练习
2.1 循环,if和switch练习
2.1.1 键盘录入月份,输出对应的季节(if…else或switch实现)
2.1.1.1 案例代码六:
package com.itheima;
import java.util.Scanner;
/*
* 需求:键盘录入一个月份,输出该月份对应的季节。
* 一年有四季
* 3,4,5 春季
* 6,7,8 夏季
* 9,10,11 秋季
* 12,1,2 冬季
*
* 分析:
* A:键盘录入一个月份,用Scanner实现
* B:判断该月份是几月,根据月份输出对应的季节
* if
* switch
*/
public class Test {
public static void main(String[] args) {
// 键盘录入一个月份,用Scanner实现
Scanner sc = new Scanner(System.in);
// 接收数据
System.out.println("请输入一个月份(1-12):");
int month = sc.nextInt();
// 判断该月份是几月,根据月份输出对应的季节
/*
if (month == 1) {
System.out.println("冬季");
} else if (month == 2) {
System.out.println("冬季");
} else if (month == 3) {
System.out.println("春季");
} else if (month == 4) {
System.out.println("春季");
} else if (month == 5) {
System.out.println("春季");
} else if (month == 6) {
System.out.println("夏季");
} else if (month == 7) {
System.out.println("夏季");
} else if (month == 8) {
System.out.println("夏季");
} else if (month == 9) {
System.out.println("秋季");
} else if (month == 10) {
System.out.println("秋季");
} else if (month == 11) {
System.out.println("秋季");
} else if (month == 12) {
System.out.println("冬季");
} else {
System.out.println("你输入的月份有误");
}
*/
//代码太长了,能不能简单一些呢?
//能,如何简单一些呢?
//我们可以把相同季节的月份放到一起来判断
//(month==3 || month==4 || month==5)
if(month==1 || month==2 || month==12) {
System.out.println("冬季");
}else if(month==3 || month==4 || month==5) {
System.out.println("春季");
}else if(month==6 || month==7|| month==8) {
System.out.println("夏季");
}else if(month==9 || month==10 || month==11) {
System.out.println("秋季");
}else {
System.out.println("你输入的月份有误");
}
}
}
2.1.1.2 案例代码七:
package com.itheima;
import java.util.Scanner;
/*
* 需求:键盘录入一个月份,输出该月份对应的季节。
* 一年有四季
* 3,4,5 春季
* 6,7,8 夏季
* 9,10,11 秋季
* 12,1,2 冬季
*
* 分析:
* A:键盘录入一个月份,用Scanner实现
* B:判断该月份是几月,根据月份输出对应的季节
* if
* switch
*
* case穿透。
*/
public class Test2 {
public static void main(String[] args) {
// 键盘录入一个月份,用Scanner实现
Scanner sc = new Scanner(System.in);
// 接收数据
System.out.println("请输入月份(1-12):");
int month = sc.nextInt();
// 用switch语句实现
/*
switch (month) {
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;
case 8:
System.out.println("夏季");
break;
case 9:
System.out.println("秋季");
break;
case 10:
System.out.println("秋季");
break;
case 11:
System.out.println("秋季");
break;
case 12:
System.out.println("冬季");
break;
default:
System.out.println("你输入的月份有误");
break;
}
*/
//case 穿透
/*
switch(month) {
case 1:
System.out.println("hello");
//break;
case 2:
System.out.println("world");
break;
default:
System.out.println("over");
break;
}
*/
//通过case穿透现象改进代码
switch(month) {
case 1:
case 2:
case 12:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("你输入的月份有误");
break;
}
}
}
2.1.2 打印5位数中所有的回文数
2.1.2.1 案例代码八:
package com.itheima;
/*
* 需求:打印5位数中的所有回文数。
* 什么是回文数呢?举例:12321是回文数,个位与万位相同,十位与千位相同。
*
* 分析:
* A:5位数告诉了我们数据的范围,用for循环实现
* B:获取每一个5位数,然后得到它的个位,十位,千位,万位
* 假设x是一个5位数:
* 个位:x%10
* 十位:x/10%10
* 千位:x/10/10/10%10
* 万位:x/10/10/10/10%10
* C:把满足条件的数据输出即可
*/
public class Test3 {
public static void main(String[] args) {
//5位数告诉了我们数据的范围,用for循环实现
for(int x=10000; x<100000; x++) {
//获取每一个5位数,然后得到它的个位,十位,千位,万位
int ge = x%10;
int shi = x/10%10;
int qian = x/10/10/10%10;
int wan = x/10/10/10/10%10;
//把满足条件的数据输出即可
if((ge==wan) && (shi==qian)) {
System.out.println(x);
}
}
}
}
2.2 数组练习
2.2.1 不死神兔问题
2.2.1.1 案例代码九
package com.itheima;
/*
* 需求:
* 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
* 假如兔子都不死,问第二十个月的兔子对数为多少?
*
* 规律:
* 第一个月:1
* 第二个月:1
* 第三个月:2
* 第四个月:3
* 第五个月:5
* ...
*
* 规律:从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和。
* 第一个月和第二个月的兔子对数是1
* 分析:
* int[] arr = new int[20];
*
* arr[0] = 1;
* arr[1] = 1;
*
* arr[2] = arr[0] + arr[1];
* arr[3] = arr[1] + arr[2];
* arr[4] = arr[2] + arr[3];
* ...
*/
public class Test4 {
public static void main(String[] args) {
//定义数组
int[] arr = new int[20];
//初始化第一个月和第二个月的兔子对数c
arr[0] = 1;
arr[1] = 1;
for(int x=2; x<arr.length; x++) {
arr[x] = arr[x-2] + arr[x-1];
}
System.out.println("第二十个月的时候的兔子对数是:"+arr[19]);
}
}
2.2.2 求数组中满足要求的元素和
2.2.2.1 案例代码十:
package com.itheima;
/*
* 需求:
* (1)定义一个int类型的一维数组,内容为{171,72,19,16,118,51,210,7,18}
* (2)求出该数组中满足要求的元素和。
* 要求:求和的元素的个位和十位不能包含7,并且只能为偶数。
*
* 分析:
* A:定义一个int类型的一维数组
* B:定义一个求和变量
* C:遍历数组,获取到数组中的每一个元素
* D:判断该元素是否满足如下要求,如果是就累加,否则,不搭理它
* x%2==0
* x%10 != 7
* x/10%10 !=7
* E:输出结果
*/
public class Test5 {
public static void main(String[] args) {
//定义一个int类型的一维数组
int[] arr = {171,72,19,16,118,51,210,7,18};
//定义一个求和变量
int sum = 0;
//遍历数组,获取到数组中的每一个元素
for(int x=0; x<arr.length; x++) {
if((arr[x]%10 != 7) && (arr[x]/10%10 != 7) && (arr[x]%2 == 0)) {
sum += arr[x];
}
}
System.out.println("sum:"+sum);
}
}
2.2.3 裁判评分
2.2.3.1 案例代码十一:
package com.itheima;
import java.util.Scanner;
/*
* 需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
* 选手的最后得分为:去掉一个最高分和一个最低分后 其余4个选手的平均值。
* 请写代码实现。(不考虑小数部分)
*
* 分析:
* A:定义一个长度为6的数组。
* B:通过键盘录入的方式给出评委的分数
* C:写方法实现获取数组中的最大值,最小值
* D:写方法实现数组元素的求和
* E:平均分: (和-最高分-最低分)/(arr.length-2)
* F:输出分数即可
*/
public class Test6 {
public static void main(String[] args) {
//定义一个长度为6的数组
int[] arr = new int[6];
//通过键盘录入的方式给出评委的分数
Scanner sc = new Scanner(System.in);
for(int x=0; x<arr.length; x++) {
// arr[x] = sc.nextInt();
System.out.println("请给出第"+(x+1)+"个评委的分数(0-100):");
int number = sc.nextInt();
arr[x] = number;
}
//写方法实现获取数组中的最大值,最小值
int max = getMax(arr);
int min = getMin(arr);
//写方法实现数组元素的求和
int sum = sum(arr);
// (和-最高分-最低分)/(arr.length-2)
int avg = (sum-max-min)/(arr.length-2);
//输出分数即可
System.out.println("该选手的最终得分是:"+avg);
}
//数组元素求和
public static int sum(int[] arr) {
int sum = 0;
for(int x=0; x<arr.length; x++) {
sum += arr[x];
}
return sum;
}
//数组中的最小值
public static int getMin(int[] arr) {
int min = arr[0];
for(int x=1; x<arr.length; x++) {
if(arr[x] < min) {
min = arr[x];
}
}
return min;
}
//数组中的最大值
public static int getMax(int[] arr) {
int max = arr[0];
for(int x=1; x<arr.length; x++) {
if(arr[x] > max) {
max = arr[x];
}
}
return max;
}
}
2.2.4 数组反转
2.2.4.1 案例代码十二:
package com.itheima;
import java.util.Scanner;
/*
* 需求:
* (1)键盘录入5个int类型的数据存储数组arr中
* (2)定义方法将arr数组中的内容反转
* (3)定义方法对反转后的数组进行遍历
*
* 分析:
* A:定义一个长度为5的数组
* B:通过键盘录入数据给数组中的元素赋值
* C:定义方法将arr数组中的内容反转
* 什么是反转?如何反转?
* D:定义方法遍历数组
*/
public class Test7 {
public static void main(String[] args) {
// 定义一个长度为5的数组
int[] arr = new int[5];
// 通过键盘录入数据给数组中的元素赋值
Scanner sc = new Scanner(System.in);
for (int x = 0; x < arr.length; x++) {
System.out.println("请给出第" + (x + 1) + "个元素");
arr[x] = sc.nextInt();
}
System.out.println("反转前的数组元素:");
printArray(arr);
// 定义方法将arr数组中的内容反转
reverse(arr);
System.out.println("反转后的数组元素:");
//定义方法遍历数组
printArray(arr);
}
//遍历数组
public static void printArray(int[] arr) {
System.out.print("[");
for(int x=0;x<arr.length; x++){
if(x == arr.length-1) {
System.out.println(arr[x]+"]");
}else {
System.out.print(arr[x]+", ");
}
}
}
/*
* 两个明确: 返回值类型:void 参数列表:int[] arr
*/
public static void reverse(int[] arr) {
for(int startIndex=0,endIndex=arr.length-1;startIndex<=endIndex;startIndex++,endIndex--) {
int temp = arr[startIndex];
arr[startIndex] = arr[endIndex];
arr[endIndex] = temp;
}
}
}
2.2.5 数组基本查找
2.2.5.1 案例代码十三:
package com.itheima;
import java.util.Scanner;
/*
*需求:数组元素查找(查找指定元素第一次在数组中出现的索引)
*(1)给定数组int[] arr = {5,7,3,2,5};
*(2)要查询的元素通过键盘录入的方式确定
*(3)定义一个查找数组元素第一次出现位置的方法(注,要查找的元素就是键盘录入的数据)
*
*分析:
* A:给定数组int[] arr = {5,7,3,2,5};
* B:要查询的元素通过键盘录入的方式确定
* C:定义一个查找数组元素第一次出现位置的方法
* 遍历数组,获取到每一个元素,进行比较,如果想等,就直接把该处的索引返回。
* D:调用方法,输出结果
*/
public class Test8 {
public static void main(String[] args) {
// 给定数组int[] arr = {5,7,3,2,5};
int[] arr = { 5, 7, 3, 2, 5 };
//要查询的元素通过键盘录入的方式确定
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查找的元素:");
int number = sc.nextInt();
//定义一个查找数组元素第一次出现位置的方法
//调用方法
int index =getIndex(arr, number);
System.out.println("index:"+index);
}
/*
* 两个明确:
* 返回值类型:int
* 参数列表:int[] arr,int value
*/
public static int getIndex(int[] arr,int value) {
//遍历数组,获取到每一个元素,进行比较,如果想等,就直接把该处的索引返回。
/*
for(int x=0; x<arr.length; x++) {
if(arr[x] == value) {
return x;
}
}
return -1;
*/
int index = -1;
for(int x=0; x<arr.length; x++) {
if(arr[x] == value) {
index = x;
break;
}
}
return index;
}
}
2.2.6 数据加密
2.2.6.1 案例代码十四:
package com.itheima;
import java.util.Scanner;
/*
* 需求:键盘录入数据,要求数据是四位的整数,现需要对数据进行加密,加密规则如下:
* 每位数字都加上5,然后除以10的余数代替该数字,
* 再将第一位和第四位交换,第二位和第三位交换,
* 请把加密后的数据输出到控制台
*
* 分析:
* A:键盘录入一个四位数
* B:对数据进行加密
* 举例:
* 4567
* 把这个四位数分成个,十,百,千存储到数组中
* int[] arr = {4,5,6,7};
* 每位数字都加上5:
* arr[x] += 5; {9,10,11,12}
* 然后除以10的余数代替该数字:
* arr[x] %= 10; {9,0,1,2}
* 再将第一位和第四位交换,第二位和第三位交换:
* {9,0,1,2} {2,1,0,9}
* C:输出加密后的数据
*/
public class Test9 {
public static void main(String[] args) {
//键盘录入一个四位数
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入一个四位数:");
int number = sc.nextInt();
//分别得到该数据的每一个位上的数据
int ge = number%10;
int shi = number/10%10;
int bai = number/10/10%10;
int qian = number/10/10/10%10;
//定义一个数组
int[] arr = new int[4];
arr[0] = qian;
arr[1] = bai;
arr[2] = shi;
arr[3] = ge;
//加密规则
//每位数字都加上5,然后除以10的余数代替该数字
for(int x=0; x<arr.length; x++) {
arr[x] += 5;
arr[x] %= 10;
}
//再将第一位和第四位交换,第二位和第三位交换
int temp = arr[0];
arr[0] = arr[3];
arr[3] = temp;
int temp2 = arr[1];
arr[1] = arr[2];
arr[2] = temp2;
//输出加密后的数据
for(int x=0; x<arr.length; x++) {
System.out.print(arr[x]);
}
System.out.println();
}
}
java基础-day6的更多相关文章
- java基础-System类常用方法介绍
java基础-System类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.System类概念 在API中system类介绍的比较简单,我们给出定义,system中 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- 【JAVA面试题系列一】面试题总汇--JAVA基础部分
JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...
- 最适合作为Java基础面试题之Singleton模式
看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...
- java基础练习 字符串,控制流,日历,日期等
1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- Java基础知识【上】(转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- java基础学习03(java基础程序设计)
java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...
随机推荐
- Jenkins与SVN持续集成
官网下载Jenkins&SVN&eclipse,版本号没要求,建议使用最新稳定版本 登录Jenkins:http://localhost:8080 登录SVN:http://local ...
- Centos 7.0 Firewall-cmd 使用方式
开启端口命令 输入firewall-cmd --query-port=6379/tcp,如果返回结果为no,那么证明6379端口确实没有开启.输入firewall-cmd --add-port=637 ...
- PHP 语句和时间函数
语句 1.分支语句 (1)if例子:$a=9;$b=5;if($a>$b){echo $a."比".$b."大";}else{echo $a." ...
- day2-pycharm创建项目,driver下载和浏览器设置
对于ie需要设置,才能使用ie做测试 火狐的使用不能超过43版本,ie11现在有多次弹出alert无法识别其内容的问题 https://github.com/SeleniumHQ/selenium/w ...
- Pycharm的常用快捷将
程序运行 Shift+alt+F10 执行程序 debug调试 Shift+alt+F9 Debug调试Shift + F9 对当前文件进行DebugF8 调试模式下 跳过F7 调试模式下 进入F9 ...
- Composer 中文镜像 Lavavel-china 公益项目
『Composer 中国全量镜像』是由 Laravel China 社区联合 又拍云 与 优帆远扬 共同合作推出的公益项目,旨在为广大 PHP 用户提供稳定和高速的 Composer 国内镜像服务. ...
- [Robot Framework] 怎么做数学运算?
运用BuiltIn里面的Set Variable
- Git简单操作命令
Git 1.创建远程分支(git项目已在) git checkout -b cgy git add . git commit -m “add new branch” git push origin c ...
- Java学习笔记:23种设计模式
设计模式(Design pattern)的定义: In software engineering, a software design pattern is a general, reusable s ...
- php结合layui实现前台加后台操作
一:前台加载出前端页面: HTML: lay-data="{width:800,height:400, url:'data.php', page:true, id:'test'} js: l ...