当前位置: 首页 > backend >正文

JAVA与C语言之间的差异(二)

一、while循环,do while循环

众所周知,while循环的结构是这样的:

 while(循环条件) {循环语句;}

在C语言中,可以直接再循环条件处写1,表示死循环,直到执行break才可以跳出,但是在JAVA中不可以,JAVA中这里的表达式必须是通过关系运算符进行判断后结果为true或false才可以!!!

do while循环同理!!!(很少使用)

二、方法(就是C语言中的函数)

1.方法的格式:

修饰符   返回值类型   ⽅法名称([参数类型  形参 ...]){⽅法体代码;[return 返回值];}

可以通过下面的例子了解:

 //检测⼀个年份是否为闰年public static boolean isLeapYear(int year){if((0 == year % 4 && 0 != year % 100) || 0 == year % 400){return true;}else{return false;}}//两个整数相加public static int add(int x, int y) {return x + y;}

#注:

(1)如果⽅法有返回值,返回值类型必须要与返回的实体类型⼀致,如果没有返回值,必 须写成void

(2)⽅法名字:采⽤⼩驼峰命名

(3)在Java当中,⽅法必须写在类当中

(4)在Java当中,⽅法不能嵌套定义

(5)在Java当中,没有⽅法声明⼀说

函数的调用同C语言一样!!!

#注:JAVA可以直接返回一个数组,这是C语言中办不到的!!!

(直接  “return  数组名”)

2.方法的重载

C语言中不支持两个同名的函数同时存在,而在我们高贵的JAVA中可以!!!

方法的重载可以简单理解为有几个同名的方法同时存在,他们之间参数列表不同,这样编译器在编译代码时会对实参进行推演,根据推演结果确定调用哪个方法(简单来说就是那个最合适用哪个)

 public class TestMethod {public static void main(String[] args) {add(1, 2);              // 调⽤add(int, int)   add(1.5, 2.5);          // 调⽤add(double, double)  add(1.5, 2.5, 3.5);     // 调⽤add(double, double, double)  }public static int add(int x, int y) {return x + y;}public static double add(double x, double y) {return x + y;}public static double add(double x, double y, double z) {return x + y + z;}}

三、数组

JAVA中数组的写法与C语言中有所区别:

1.一维数组

两种数组创建方法:

//动态初始化:在创建数组时,直接指定数组中元素的个数
int[] array = new int[10];// 静态初始化:在创建数组时不直接指定数据元素个数,⽽直接将具体的数据内容进⾏指定
int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};

#注:如果没有对数组进行初始化,那么将会默认存储对应的0值,boolean默认为FALSE,引用类型(String)默认为null。

在JAVA中,用数组对象.length来获取数组长度.

对于数组的遍历(就是打印一遍),JAVA中有着快捷的方法:

//for-each遍历数组int[] array = {1, 2, 3};for (int x : array) {System.out.println(x);}

2.null

null 在Java中表⽰"空引⽤",也就是⼀个不指向对象的引⽤

int[] arr = null;
System.out.println(arr[0]);// 执⾏结果 
Exception in thread "main" java.lang.NullPointerException at Test.main(Test.java:6)

null 的作⽤类似于C语⾔中的NULL(空指针),都是表⽰⼀个⽆效的内存位置.因此不能对这个内存进⾏ 任何读写操作.⼀旦尝试读写,就会抛出NullPointerException

3.数组转字符串

 import java.util.Arraysint[] arr = {1,2,3,4,5,6};String newArr = Arrays.toString(arr);System.out.println(newArr);// 执⾏结果 [1, 2, 3, 4, 5, 6]

4.数组拷⻉

import java.util.Arrays;public static void func(){//全拷贝(引用同一个数组)//改一个都会变int[] arr = {1,2,3,4,5,6};int[] newArr = arr;newArr[0] = 10;System.out.println("newArr: " + Arrays.toString(arr));//全拷贝(引用不同数组)//用Arrays中copyOf在拷贝的同时建一个新的数组//改一个另一个不变arr[0] = 1;newArr = Arrays.copyOf(arr, arr.length);System.out.println("newArr: " + Arrays.toString(newArr));//拷贝某个范围  [  ,  )int[] newArr2 = Arrays.copyOfRange(arr, 2, 4);System.out.println("newArr2: " + Arrays.toString(newArr2));}

5.二维数组

数据类型[][] 数组名称 = new 数据类型 [⾏数][列数]{ 初始化数据 };

#注:

(1)在JAVA中,⾏不可以省略,列可以省略

(2)二维数组必须用{}区分行,编译器没有办法自己判断划分!!!

 int[][] arr = {{1, 2, 3, 4},{5, 6, 7, 8}, {9, 10, 11, 12} };

6.不规则的二维数组

不规则的⼆维数组指的是,⼆维数组的列在定义的时候,没有确定。

 int[][] array = new int[2][];array[0] = new int[3];array[1] = new int[5];

上述⼆维数组就不是⼀个规则的⼆维数组。第1⾏有3列,第2⾏有5列。

http://www.xdnf.cn/news/9865.html

相关文章:

  • 1614. 括号的最大嵌套深度【 力扣(LeetCode) 】
  • 摩尔信使MThings无法生成机器码的解决方法
  • 腾讯云国际站性能调优
  • 【静电模拟】使用打火机的电子部分模拟手指静电
  • 机器学习-线性回归基础
  • 【Elasticsearch】suggest
  • C++17常量
  • 【Python办公】将Excel表格转json(字典)数据-可自定义key和value
  • TeleAI发布TeleChat2.5及T1正式版,双双开源上线魔乐社区!
  • 实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.6 R语言解题
  • ubuntu mysql 8.0.42 基于二进制日志文件位置和GTID主从复制配置
  • 玛哈特校平机:金属板材加工的精整专家
  • 记一次 Starrocks be 内存异常宕机
  • Ubuntu20.04操作系统ssh开启oot账户登录
  • 大数据学习(125)-hive数据分析
  • HOW - 简历和求职面试宝典(七)
  • 整数加减法测试题
  • API网关和API管理的区别
  • 【PCB工艺】绘制原理图 + PCB设计大纲:最小核心板STM32F103ZET6
  • Day39
  • remote: error: hook declined to update refs/heads.....
  • DrissionPage ChromiumPage模式:浏览器自动化的高效利器
  • 【PhysUnits】15.1 引入P1后的加一特质(add1.rs)
  • DeepSeekMath:突破开放式语言模型中数学推理能力的极限
  • 百度之星2024 初赛第一场 补给
  • 一键提取Office内图片的工具
  • MySQL 数据库调优指南:提升性能的全面策略
  • 【第4章 图像与视频】4.4 离屏 canvas
  • 前端开源JavaScrip库
  • uniapp+ts模拟popup弹出框(下拉框)