Java核心技术巩固篇之如何理解控制流程与大数值及数组

发布时间:2021-10-25 14:32:49 作者:iii
来源:亿速云 阅读:103

这篇文章主要介绍“Java核心技术巩固篇之如何理解控制流程与大数值及数组”,在日常操作中,相信很多人在Java核心技术巩固篇之如何理解控制流程与大数值及数组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java核心技术巩固篇之如何理解控制流程与大数值及数组”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

目录

1. 控制流程

1.1 块作用域

【易错点】: 不能在嵌套的两个块中声明同名变量,如

public static void main(String[] args){
    int n;
    ...
    {
        int n; // Error--can't redefine n in inner block
    }
}

该代码由于在嵌套的两个块中出现了同名变量,无法通过编译

注意:

在 C++ 中,可以在嵌套的块中重定义一个变量。在内层定义的变量会覆盖在外层定义的变量。

1.2 条件语句

【易错点】: 在循环中,检测两个浮点数是否相等需要格外注意,如

for(double x=0; x!=10; x+=0.1);

上述循环不会结束,因为 0.1 无法精确的用二进制表示,所以 x 将从 9.99999999999998 跳到 10.09999999999998。

【补充点】: switch 语句中的 case 分支语句如果末尾不加 break,其实是一种较危险的情况。所以使用 switch 语句编译代码时可以这样写 javac -Xlint:fallthrough 文件名.java。这样写的话如果某个分支某位缺少 break,编译器就会报警告。如果你就是需要有些分支后面不加 break,可以为其外围方法加一个标注 @SuppressWarnings("fallthrough"),这样就不会对方法生成警告。

【补充点】: Java 没有 goto 语句,但 break 可以带标签,可以利用它实现从内层循环跳出的目的。如

int n;
read_data:
while(){
    for(){
        ...
        break read_data;
        ...
    }
}

注意:

该方式只能跳出语句块,而不能跳入语句块

2. 大数值

【补充点】: 如果基本的整数和浮点数不能满足需求,可以使用 java.math 包中的两个类:BigIntegerBigDecinmal。这两个类可以处理包含任意长度数字序列的数值。BigInteger 类实现了任意精度的整数运算,BigDecinmal 实现了任意精度的浮点型数运算

3. 数组

【易错点】: Java 中的数组长度不要求是常量,如 new int[n] 会创建一个长度为 n 的数组。但是确定 n 的值之后就不能改变。

3.1 命令行参数

【补充点】:每一个 Java 应用程序都有一个带 String[] args 参数的 main 方法。这个参数表明 main 方法将接受一个字符串数组,也就是命令行参数。如

public class Message{
    public static void main(String[] args){
        if(args.length==0||args[0].equals("-h")){
            System.out.print("Hello,");
        }else if(args[0].equlas("-g")){
            System.out.print("Goodbye,");
        }
        for(int i=1;i<args.length;i++){
            System.out.print(" "+args[i]);
        }
    }
}

如果我们在命令行使用下面这种形式运行这个程序:java Message -g cruel world ,将显示下列信息 Goodbye, cruel world!

这表明 args 数组内存的内容如下:args[0]="-g",args[1]="cruel",args[2]="world"

注意:

在 Java 应用程序的 main 方法中,程序名并没有储存在 args 数组中

到此,关于“Java核心技术巩固篇之如何理解控制流程与大数值及数组”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. OSPF动态路由协议——理论巩固篇
  2. Dockerfile最佳实践(二)巩固篇

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:linux中如何配置PCI和ACPI

下一篇:Python爬虫经常会被封的原因是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》