杨辉三角,自定义异常类和字符统计

一.知识点

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成员变量与局部变量的区别

  1. 从语法形式上看,成员变量是属于类的,而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被public, private, static等修饰符修饰,而局部变量则不能被访问控制修饰符及static修饰;成员变量和局部变量都可以被final修饰。
  2. 从变量在内存中的存储方式上看,成员变量是对象的一部分,而对象是存在与堆内存的,而局部变量是存在于栈内存的
  3. 从变量在内存中的生存时间上看,成员变量是对象的一部分,它随着对象的创建而存在,而局部变量随着方法的调用而产生,随着方法调用的结束而自动消失。
  4. 成员变量如果没有被赋初值,则会自动以类型的默认值赋值(有一种情况例外,被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);
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值