总结目录
一.知识点
1.Java中Break,Continue,Return的区别及作用
一.continue 关键字
1.作用:结束本次循环,继续下一次循环;
2.使用场景;
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
//需求:不打印第三次HelloWorld
if(i == 3){
continue;
}
System.out.println("HelloWorld"+"......"+i);
}
}
执行结果如下:
HelloWorld…1
HelloWorld…2
HelloWorld…4
HelloWorld…5
观察会发现“HelloWorld…3”没有执行
二。break 关键字
1.作用:结束循环体或跳出switch语句
2.使用场景:
(1)使用在循环体中:
public static void main(String[] args) {
for (int i = 1; i<=10; i++) {
//需求:打印完两次HelloWorld之后结束循环
if(i == 4){
break;
}
System.out.println("HelloWorld"+"......"+i);
}
}
执行结果如下:
HelloWorld…1
HelloWorld…2
HelloWorld…3
会发现执行完第二步就不再执行循环体了
(2)使用在switch语句中
如果case语句之后不写break;则会出现穿透现象
三.return关键字
作用:返回语句,作用在方法体中,后面跟的内容要与方法的返回值类型一样
2.Java成员变量与局部变量的区别
- 从语法形式上看,成员变量是属于类的,而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被public, private, static等修饰符修饰,而局部变量则不能被访问控制修饰符及static修饰;成员变量和局部变量都可以被final修饰。
- 从变量在内存中的存储方式上看,成员变量是对象的一部分,而对象是存在与堆内存的,而局部变量是存在于栈内存的
- 从变量在内存中的生存时间上看,成员变量是对象的一部分,它随着对象的创建而存在,而局部变量随着方法的调用而产生,随着方法调用的结束而自动消失。
- 成员变量如果没有被赋初值,则会自动以类型的默认值赋值(有一种情况例外,被final修饰但没有被static修饰的成员变量必须显式地赋值);而局部变量则不会自动赋值,必须显式地赋值后才能使用。
二. 操作题
1.字符统计
1.概述
输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数
做错原因:在做的时候需要统计空格,没有想到nextLine();能够输入空格,而是使用的next();
在用if语句做判断时,对于英文字母,想到的是ASCII码,不知道能够直接大小于
2.代码实现
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
/*
通过键盘输入一行字符,统计出这行字符串中的英文字母个数,空格个数,数字个数和其他字符个数
*/
Scanner scanner = new Scanner(System.in);
int math = 0;
int space = 0;
int english = 0;
int other = 0;
System.out.println("请输入一行字符 :");
String str = scanner.nextLine();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= '0' && c <= '9'){
math++;
} else if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') {
english++;
} else if (c == ' ') {
space++;
}else {
other++;
}
}
System.out.println("数字的个数为:" + math);
System.out.println("英文字母的个数为:" + english);
System.out.println("空格的个数为 :" + space);
System.out.println("其他字符的个数为:"+ other);
}
}
2.杨辉三角
1.概述
根据输入值输出对应行数的杨辉三角
做错原因:不会使用二维数组且不太清楚杨辉三角的原理
2.代码实现
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
// 杨辉三角
// 要用到二维数组
Scanner scanner = new Scanner(System.in);
System.out.println("输入杨辉三角的层数;");
int layer = scanner.nextInt();
// 定义一个二维数组来实现
int[][] triangle = new int[layer][layer];
// 定义一个循环来控制行的赋值
for (int i = 0; i < triangle.length; i++) {
for (int j = 0; j <= i ; j++) {
// 每一行的第一个数和最后一个数都是1
if (j == 0 || i == j ){
triangle[i][j] = 1;
}else {
triangle[i][j] = triangle[i - 1][j] + triangle[i - 1][j - 1];
}
System.out.print(triangle[i][j] + " ");
}
System.out.println();
}
}
}
3.编写一个自定义异常处理类
如何自定义异常类?
1.继承于现有的异常结构:RuntimeException , Exception
2.提供全局常量:serivalVersionUID
3.提供重载的构造器
public class MyException extends Exception{
static final long serialVersionUID = - 7034897193246939L;
public MyException(){
}
public MyException(String msg){
super(msg);
}
}