Java 控制流程、大数值、数组

目录
  • 1. 控制流程
    • 1.1 块作用域
    • 1.2 条件语句
  • 2. 大数值
  • 3. 数组
    • 3.1 命令行参数

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 包中的两个类:BigInteger BigDecinmal。这两个类可以处理包含任意长度数字序列的数值。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 控制流程、大数值、数组的文章就介绍到这了,更多相关Java 控制流程、大数值、数组内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java与scala数组及集合的基本操作对比

    目录 java与scala数组及集合的操作 scala数组基本操作 对应java代码 scala可变数组ArrayBuffer java 相应 ArrayList操作 scala 的数组遍历 java数组的遍历 scala数组与java数组对比 源码上 java与scala数组及集合的操作 这篇博客介绍了scala的数组 + 可变数组的基本使用,及其与java数组的区别 scala数组基本操作 def main(args: Array[String]): Unit = { //new一个大小不变

  • 一文带你掌握Java8中Lambda表达式 函数式接口及方法构造器数组的引用

    目录 函数式接口概述 函数式接口示例 1.Runnable接口 2.自定义函数式接口 3.作为参数传递 Lambda 表达式 内置函数式接口 Lambda简述 Lambda语法 方法引用 构造器引用 数组引用 函数式接口概述 只包含一个抽象方法的接口,称为函数式接口. 可以通过 Lambda 表达式来创建该接口的对象. 可以在一个接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口.同时 javadoc 也会包含一条声明,说明这个接口是一个函数式接口.

  • Java数组看这篇就够了

    目录 一.前言 二.数组的定义数组定义的形式: 三.数组的初始化方式: 1.动态初始化 2.静态初始化 四.索引访问数组 五.数组长度表示 六.遍历数组 方法一: 方法二:实例演示: 七.数组的初始值 总结 一.前言 前面我们学习了随机数的介绍和使用,那么这篇我们来学习java中数组的定义和使用, java的数组和c语言的十分类似. 二.数组的定义数组定义的形式: 格式1: 数据类型 [ ] 数组名 :如int [ ]arr; 说明:定义了一个int类型的数组,数组名是arr 格式2: 数据类型

  • Java基础之三大控制流程结构

    一.前言 在代码的控制流程当中,有三大结构.分别是顺序结构,选择结构,循环结构,就让我们来看一看这三大结构体和一些语句吧 二.顺序结构 顺序结构是指按照顺序一句一句地执行 public class Demo{ public static void main(String[] args) { System.out.println("顺序1"); System.out.println("顺序2"); System.out.println("顺序3")

  • Java数组实现动态初始化的实例详解

    概念 1.数组动态初始化只给定数组长度,系统默认初始化值. 2.格式 数据类型[] 数组名 = new 数据类型[数组长度]; int[] arr = new int[3]; 实例 package com.itheima.array; public class Demo2Array { /* 数组的动态初始化: 在初始化的时候, 需要手动指定数组的长度, 系统会为数组容器分配初始值. 动态初始化格式: 数据类型[] 数组名 = new 数据类型[数组的长度]; 注意: 打印数组变量的时候, 会打

  • 一篇文章告诉你如何在Java数组中插入一个字符

    目录 定义一个数组 定义插入的字符 打印插入之前字符排列顺序 假设插入位置 找到插入位置 数组数据下移 移入数值 输出数组 总结 定义一个数组 public class charInsert { public static void main(String[] args) { // 这是字符数组 char[] ch = new char[9]; ch[0] = 'a'; ch[1] = 'b'; ch[2] = 'c'; ch[3] = 'f'; ch[4] = 'g'; ch[5] = 'i'

  • Java 控制流程、大数值、数组

    目录 1. 控制流程 1.1 块作用域 1.2 条件语句 2. 大数值 3. 数组 3.1 命令行参数 1. 控制流程 1.1 块作用域 [易错点]: 不能在嵌套的两个块中声明同名变量,如 public static void main(String[] args){ int n; ... { int n; // Error--can't redefine n in inner block } } 该代码由于在嵌套的两个块中出现了同名变量,无法通过编译 注意: 在 C++ 中,可以在嵌套的块中重

  • Java控制流程示例代码详解

    目录 用户交互Scanner.Scanner进阶使用 用户交互Scanner Scanner进阶使用 顺序结构 选择结构* if选择结构 Switch选择结构 循环结构* while循环 do..while循环 for循环 增强型for循环 break&continue* 练习 用户交互Scanner.Scanner进阶使用 用户交互Scanner ​ 之前我们学习的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入.java.util.Sca

  • JAVA控制流程break continue的示例代码

    JAVA流程控制中有相关代码可以终止整个流程的进程,他们就是(break和continue) break:在任何循环的主体部分上,都可以使用break语句,他的作用是用于强行结束当前语句,不执行剩余语句的功能. continue:在任何循环的主体部分上,他的作用是用于终止某次循环的过程或者可以解释是:跳过循环中未执行的语句,跳过执行接下来的语句. 下面看下JAVA控制流程break continue的代码介绍: package com.kuang.base.struct顺序结构; public

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

    目录 1. 控制流程 1.1 块作用域 1.2 条件语句 2. 大数值 3. 数组 3.1 命令行参数 前言: 个人已经学习了一遍 Java,为了巩固基础查漏补缺,自己再看一遍核心卷.该文章主要补充了一些自己没有了解的.重要的.易忘记的知识点,所以并不是用来专门学习 Java 的文章,而是主要用来帮助大家巩固自己的内功的.如果大家想要看 Java 学习的文章,可以去我的 JavaSE 专栏,里面都是关于 Java 基础语法的知识. 1. 控制流程 1.1 块作用域 [易错点]: 不能在嵌套的两个

  • Java中控制流程语句的深入讲解

    目录 前言 if-then if-then-else switch 使用 String while do-while for break continue return 总结 前言 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 控制语句分为三类:顺序.选择和循环. 顺序结构:代表"先执行a,再执行b"的逻辑. 选择结构:代表"如果-,则-"的逻辑. 循环结构:代表"如果-,则重复执行-"的逻辑.

  • Java程序流程控制:判断结构、选择结构、循环结构原理与用法实例分析

    本文实例讲述了Java程序流程控制:判断结构.选择结构.循环结构原理与用法.分享给大家供大家参考,具体如下: 本文内容: 判断结构 if 选择结构 switch 循环结构 while do-while for for each break.continue return 首发时间:2017-06-22 21:34 修改时间: 2018-03-16 17:01 判断结构: java中使用if作为判断结构 if语句有三种格式: package study.program_struct; import

  • Java 高精度的大数字运算方式

    目录 Java 高精度的大数字运算 高精度整数BigInteger 高精度浮点数BigDecimal (1)BigInteger和BigDecimal都是不可变(immutable) (2)BigDecimal有4个够造方法 (3)equals()方法认为0.1和0.1是相等的 (4)另外还有一些情形 java超长数据高精度计算(仅支持整数) Java 高精度的大数字运算 为了解决Java基本数据类型在运算时会出现的溢出和计算不精确的问题.Java 提供了两个类BigInteger和BigDec

  • 一文详解Java中流程控制语句

    目录 概述 判断语句 if if...else if..else if...else if语句和三元运算符的互换 选择语句 switch case的穿透性 循环语句 for while do...while for 和 while 的小区别 跳出语句 break continue 死循环 嵌套循环 概述 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说,程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序

  • java实现给出分数数组得到对应名次数组的方法

    本文实例讲述了java实现给出分数数组得到对应名次数组的方法.分享给大家供大家参考.具体实现方法如下: package test01; /** * 给出分数数组,得到对应的名次数组 * 列如有:score = {4,2,5,4} * 则输出:rank = {2,3,1,2} */ import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ScoreRank { //

随机推荐