java基本语法(内涵与C++的不同)

发布时间:2024年01月20日

java语法

????????在介绍java中,我会去书写一些java语言与C++的不同点。

目录

java语法

变量、运算符、输入与输出

????????内置数据类型

????????常量

????????运算符

两种输入输出

输入

????????方法一

????????方法二

输出

????????方法一

????????方法二

判断语句

? ? ? ? if-else语句

? ? ? ? switch语句

? ? ? ? 逻辑表达式和条件运算符

循环语句

数组

字符串

函数

类与接口

常用容器


变量、运算符、输入与输出

????????内置数据类型

类型字节数数据范围
byte1-128~127
short2-32768~32767
int4-2147483648~2147483647(2*10^9)
long8-9223372036854774808~9223372036854774807(9*10^18)例如:1324323L(表示常数L)
float4精度6~7位? 例如:1.2F,与c++相同
double8精度15~17位 例如:1.2,1.2D(1.2默认类型为Double)
boolean1true、false
char2'A' 根据ASCLL存储

????????除了基本数据类型之外,Java提供了Integer对int的封装类,Java还提供了BigDecimal类来处理高精度小数。BigDecimal类可以表示任意精度的小数,其小数位数不受限制,可以满足各种计算需求。?

注意:与C++不同的

1、java中的long类型相当于c++中的long long类型

2、java中有2个字节,而c++中的char只有1字节

3、java中int类型没有boolean的属性,c++中数字0表示false,其他表示true等

????????常量

????????????????使用final修饰常量,相当与c++中的const

????????运算符

????????????????显示转化:与c++相同,int d=(int)3.1415;

????????????????隐式转换:与c++不同,只能从高精度转为低精度。

注意:int a=3.14*5,在java中会报错,在c++中会得到15的结果

????????????????表达式:与c++基本相同。如:int a=b*c+d;

注意:java中不能使用a=b,c=d....;会报错。

? ? ? ? ? 正确写法

??????????a=b;

? ? ? ? ? c=d;

? ? ? ? ? .....

? ? ? ? ? 当然,在申明变量时,如:int a=1,b=2,c=10;这样是支持的。

两种输入输出

输入
????????方法一
//这种是快速输入,输入时的效率不高,相当于c++中cin
import java.util.Scanner;

Scanner sc=new Scanner(System.in);

//输入字符串
sc.next()
sc.nextLine()//最为特殊,会接受无效字符,其他输入形式都不会。

//输入数字类型---与sc.next()的接受方式相同,只接受有效字符,不接受无效字符(enter、blank、tab)
sc.nextByte();
sc.nextShort();
sc.nextInt();
sc.nextLong();
sc.nextBigInteger();

//输入浮点类型
sc.nextFloat();
sc.nextDouble();

//输入boolean类型
sc.nextBoolean();

?注意:next()和nextLine()的区别

? ? ? ? ? ?1、next()只接受有效字符串,当有效字符前有无效字符(tab、blank、enter)会直到接收到有效字符,之后遇到无效字符会结束。如:输入“? ? ?hello world",输出:“hello”

? ? ? ? ? ?2、nextLine()接受一行字符串,当遇到enter时,会结束。

//next()不会接受enter等无效字符
String str1=sc.next();
String str2=sc.nextLine();

输入
  chenzihao
hello world

输出
chenzihao
null
????????方法二
import java.io.BufferedReader;
import java.io.InputStreamReader;

//较为高效的输入方法,相当于c++中scanf
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

//读入一行,与sc.nextLine()有相同的性质,会接受无效字符
br.readLine();
//读入一个字符,返回它的ASCLL值
br.read();

//读入数字的方法

//一个数字
String a=br.readLine();
Integer c=Integer.parseInt(a);

//多个数字,使用blank隔开
//Double.parseInt()、Float.paraseFloat()
//其他类型转换为字符串:Integer.toString()、Double.toString();
String[] str=br.readLine().split(" ");

for(String a:str){
    System.out.println(Integer.parseInt(a));
}

br.close();
输出
????????方法一
//普通的输出

//前两种区别便是是否输出后换行
System.out.println();
System.out.print();

//相当于c++中printf,区别便是在输出浮点数时,java只有%f。无论float还是double
System.out.printf();

//样例
System.out.printf("%04d %.2f",x,avg);
????????方法二
import java.io.BufferedWriter
import java.io.OutputStreamWriter;
//对System.out.println()的优化
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));

//输出字符串
bw.write(str);
//追加字符串
bw.append(str);

//输出字符格式
bw.write(str,off,len);

//输出数字类型
Integer t=1314;
bw.write(t.toString());

//换行
bw.newLine();

//刷新缓冲池
bw.flush();

//关闭输出流
bw.close();

判断语句

? ? ? ? if-else语句

//与c++唯一的区别,便是int中的0或者1不能当作条件判断

//错误演示
int a=1;
if(a) System.out.println(a); ?

//正确演示
int a=1;
if(a!=0) System.out.println(a); √

? ? ? ? switch语句

//与c++中相同
package com.acwing;

import java.util.Scanner;

public class Demo02{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        Integer day=sc.nextInt();

        String ans="";
        switch(day){
            case 1:
                ans="Monday";
                break;
            case 2:
                ans="Tuesday";
                break;
            case 3:
                ans="Wednesday";
                break;
            case 4:
                ans="Thursday";
                break;
            case 5:
                ans="Friday";
                break;
            case 6:
                ans="Saturday";
                break;
            case 7:
                ans="Sunday";
                break;
            default:
                ans="输入错误,请输入1~7的数字";
                break;
        }

        System.out.println(ans);
    }
}

? ? ? ? 逻辑表达式和条件运算符

作者累了,要休息几天在更新。。。。敬请期待。

循环语句

数组

字符串

函数

类与接口

常用容器

文章来源:https://blog.csdn.net/a18173352623/article/details/135598900
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。