栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

学过C语言的Java初学者做的一些笔记,记录一些C语言和Java的语法区别(持续更新)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学过C语言的Java初学者做的一些笔记,记录一些C语言和Java的语法区别(持续更新)

目录

输入输出上的区别

输入

输出

数据类型上的区别

不同数据类型运算上的区别

逻辑运算上的区别

数组上的区别

循环结构中标签的使用上的区别


  • 输入输出上的区别

输入

                Java没有专门用于输入的函数scanf,而是要导入import java.util.Scanner,即导入util包中的Scanner类,定义Scanner类上的对象(Scanner scan = new Scanner(System.in)),利用对象引用相关的输入函数Int型scan.nextInt()、String型scan.next()、byte型scan.nextByte()、float型scan.nextFloat()、double型scan.nextDouble()。

        同时Java没有提供输入char类型的函数,而只能通过输入String型的函数(str = scan.next()),然后使用str.charAt(i)函数引用第i个字符。

输出

        Java中也没有提供专门用于输出的函数,而是通过System.out.print()函数或是System.out.println()输出到屏幕上,二者的区别是println输出数据后会进行换行。

import java.util.Scanner;

class Show{

	public static void main(String[] args){

		Scanner scan = new Scanner(System.in);//定义Scanner类的一个对象scan

		byte byteNum = scan.nextByte();
		int num = scan.nextInt();
		short shortNum = scan.nextShort();
		long longNum = scan.nextLong();
		float floatNum = scan.nextFloat();
		double doubleNum = scan.nextDouble();
		boolean booleanNum = scan.nextBoolean();
		String str = scan.next();//遇到空格、回车就停止输入,剩余数据储存于缓冲区
		String strLine = scan.nextLine();//遇到回车停止输入


		System.out.print(byteNum);//输出完数据不换行
		System.out.println(byteNum);//输出完数据换行
		

		System.out.print(num);
		System.out.println(num);
	}
}
  • 数据类型上的区别

        Java中提供了8中数据的类型:byte(只占一个字节), short, char, int, float, double, String, boolean(布尔型)。

        其中String类似于字符数组,可以存放字符串,但是又不尽相同。主要是String型的数据可以被直接赋值,而C语言中的字符串数组必须通过strpy函数进行直接的变化。而且String型数据的大小是随着赋值数据的大小的变化而变化的,赋予不同的数据,String型数据的大小随之发生变化。

class Show{

	public static void main(String[] args){

		String str = "hello";
		System.out.println(str);

		str = "world";
		System.out.println(str);

		str = "I love China";
		System.out.println(str);
	}
}
  • 不同数据类型运算上的区别

        byte, short, char, int, float, double这六种类型的数据是可以直接进行数值之间的计算的。而且byte, short, char这三种类型之间的相互运算(除char型之间)所得的结果一定为int型,而不是类型的自动提升。

        此外String型的数据是不能强制转换成其它类型的数据,会编译报错。而且String数据与其他数据之间的’+’运算并不是普通的数值运算,而是“连接”(即直接连接起来)。例如123(int型) + “Java”(String型)的结果是“123Java”。

        boolean类型的数据也与C语言中的不同,Java中boolean型的数据只能为true或者false,而且true也不代表1,false也不代表0。布尔型的true与String型的“Java”相连接,结果是“trueJava”。Boolean型的数据也不能和其他六种类型的数据进行数值运算。

//测试Java当中的布尔型变量与C语言不同,不可以当作0和非0
class testBool{

	public static void main(String[] args){

		boolean bool = true;

		//int num =  1 + bool;
		//System.out.println(num);编译不成功,boolean型变量不能直接与int型变量相加

		String str = "" + bool;//这里的‘+’并不是相加,而是“连接”

		System.out.println(str);

	}
}
  • 逻辑运算上的区别

        Java中除了&&,||,!之外还提供了&, |, ^(异或),单目&和|与双目的不同在于,单目连接的两个表达式都会进行运算,而双目连接的两个表达式一旦前面的已经可以决定结果,后面的表达式就不再进行运算。

  • 数组上的区别

        Java中不能直接定义数组的大小,而是只能在定义了类型后在使用new分配空间。int[] num;(这里也可以使用int num[];)num=new int[3];其他类型与之类似。所有数组都只能在分配空间之后再使用。

        如果num已经分配了空间,还使用num = new int[5];,这时会对num进行新的空间分配(就是说num数组的内存空间已经发生了变化)。

class Show{

	public static void main(String[] args){

		char[] array = new char[3];
		int i;
		for(i = 0; i < 3; i++)
			array[i] = (char)(i + 97);

		System.out.println(array);


		array = new char[12];
		for(i = 0; i < 12; i++)
			array[i] = (char)(i + 65);
		System.out.println(array);
	}
}
  • 循环结构中标签的使用上的区别

        C语言中break和continue都只能退出或者跳过离这个语句最近的一层循环,而Java中提供了一种机制可以给循环定义一个标签,然后退出或者跳过指定的循环体。

class Show{

	public static void main(String[] args){

		label:for(int i = 1; i < 10; i++){

			for(int j = 1; j < 10; j++){

					if(j % 4 == 0)
						continue label;//标签

					System.out.print(j);

			}
			System.out.println();		
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928552.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号