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

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列。

相关文章:

  • 镍钯金PCB有哪些工艺优势?
  • postgresql 流复制中指定同步的用户
  • Whole-body Humanoid Robot Locomotion with Human Reference
  • 【笔记】suna部署之获取 Daytona API key 及 Daytona Sandbox 设置
  • VLC-QT 网页播放RTSP
  • 4. Qt对话框(2)
  • day13 leetcode-hot100-23(链表2)
  • VCS elab选项 -simprofile功能
  • vmware虚拟机在物理机重启的情况下经常上不去网的情况处理
  • 【在线五子棋对战】一、项目简介 环境搭建
  • 简述如果要存储用户的密码散列,应该使用什么字段进行存储?
  • Java求职面试:从Spring到微服务的技术挑战
  • 【PhysUnits】15.1 引入P1后的加一特质(add1.rs)
  • 【25软考网工】第九章(2)网络管理命令
  • 光年号旅行中通信之选:英国sim卡使用指南
  • 【达梦数据库】临时表空间不足
  • 第七届下一代数据驱动网络国际学术会议(NGDN 2025)
  • 几款主流V30、V60、V90相机SD卡的评测(索尼、闪迪、三星、雷克沙)
  • ai绘制mg人物半侧面头型
  • python 制作复杂表格报告
  • 网站建设工作情况总结/线上网络平台推广
  • 欧美做愛网站/百度推广优化排名怎么收费
  • 成都哪里做网站/正规接单赚佣金的平台
  • 做网站的费用计入哪个科目/app注册拉新平台
  • 海淀区社区建设网站/网站建设详细方案模板
  • 深圳十大甲级装饰公司/寻找郑州网站优化公司