C、JAVA、Python、PHP、Javascript基础语句总结+对比

编程语言的的写法虽然各不相同,但是思想都是大同小异的,或者说各种编程语言的都在互相借鉴并完善自己。

今天给大家展示五种编程语言的基础语句,横向对比,这对于小伙伴选择编程语言、学习第二门编程语言是很有帮助的,一起来看一下!

一、Hello world

1.C

#include<stdio.h>    //包含头文件
/*
 *主函数
*/  
int  main(){
    printf("Hello World");  
    return 0;
}

2.java

package helloWorld;//包名

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello world");
    }
}

3.python

print 'Hello world'

4.php

<?php
echo 'Hello world';
?>

5.javascript

document.write('Hello world');

二、注释

C java python php javascript
//和 /**/ //和 /**/ # //和 /**/ //和 /**/

三、数据类型

1.C

C是强类型语言


image.png

image.png

image.png

有科学计数法
注意:C中没有字符串类型

2.java

java是强类型语言


image.png

image.png

有科学计数法
字符串String是引用类型,它是一个类。

3.python

python是弱类型语言
1.整数
例如:1100-80800,等等。
十六进制例如:0xff000xa5b4c3d2,等等。
2.浮点数
1.233.14-9.01,等等。科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,0.000012可以写成1.2e-5 ,等等。
3.字符串
比如'abc',"xyz"等等
多行字符串,用'''...'''表示:

'''Line 1
Line 2
Line 3'''

还可以在多行字符串前面添加 r ,把这个多行字符串也变成一个raw字符串(免转义多行字符串):

r'''Python is created by "Guido".
It is free and easy to learn.
Let's start learn Python in imooc!'''

4.布尔值
只有TrueFalse两种值(请注意大小写),也可以通过布尔运算计算出来。
5.空值
None表示。

4.php

php是弱类型语言
1.布尔类型
只有两个值,一个是true,另一个false。
2.整型
整型(integer),如:

<?php
$data_int = 1234;   // 十进制数 
$data_int = -567;    // 一个负数
$data_int = 0123;    // 八进制数(等于十进制的 83)
$data_int = 0x1a;    // 十六进制数(等于十进制的 26)
?>

3.浮点型
浮点型(浮点数、双精度数或实数),例如:

<?php
$num_float = 1.234;    //小数点  
$num_float = 1.2e3;    //科学计数法,小写e  
$num_float = 7.0E-10;     //科学计数法,大写E  
?>

3.字符串

多行字符串:输入定界符“<<<”,接着是自定义标识符,结尾处的标识符也必须是一样的。并以“;”号结束,

4.资源
举例如下:

<?php
$file=fopen("f.txt","r");   //打开文件
$con=mysql_connect("localhost","root","root");  //连接数据库
$img=imagecreate(100,100);//图形画布
?>

5.空类型
NULL。

5.javascript

Js是弱类型语言。
1.数字:JavaScript 只有一种数字类型。数字可以带小数点,也可以不带。

var x1=34.00;      //使用小数点来写
var x2=34;         //不使用小数点来写

科学计数法:

var y=123e5;      // 12300000
var z=123e-5;     // 0.00123

2.字符串:

var answer="Nice to meet you!";
var answer="He is called 'Bill'";
var answer='He is called "Bill"';

3.布尔值:布尔(逻辑)只能有两个值:true 或 false。
4.数组。
5.对象。
6.null(空)。
7.Undefined(未定义)。

四、变量声明

1.C

int a = 18;
char b = 'Q';

2.java

int a = 18;
String b = "QAQ";

3.python

a = 18
b = 'QAQ'

4.php

$a = 18;
$b = 'QAQ';

5.javascript

var a = 18;
var b = 'QAQ';

五、数组与集合

1.C

C的数组用{}表示。

//第一种形式
int arrFirst[3] = {1,2,3};
//第二种形式
int arrSecond[] = {1,2,3};
//第三种形式
int arrThird[3];
    
//给arrThird数组每个元素初始化
arrThird[0] =1;
arrThird[1] =2;
arrThird[3] =3;

//调用
arrThird[0] ;

//字符串的声明
char 字符串名称[长度] = "字符串值";
//调用
printf(“%s”,字符数组名字);

注:C中没有获取数组长度的函数。

2.java

1.数组

java的数组用{}表示。

//声明数组
String[] subjects = new String[5];
// 分别为数组中的元素赋值
subjects[0] = "Oracle";
subjects[1] = "PHP";
subjects[2] = "Linux";
subjects[3] = "Java";
subjects[4] = "HTML";

//直接定义一个长度为5的字符串数组,保存考试科目信息
String[] subjects = {"Oracle","PHP","Linux","Java","HTML"};

//调用
subjects[3];
//获取数组的长度
subjects.length

2.序列ArrayList

//声明
List a = new ArrayList();
//插值
a.add(123);
//删值
a.remove(123);
//改值
a.set(0,234);
//查值
a.get(0);
//获取序列长度
a.size();

3.数集

//声明
Set a = new HashSet();
//插值
a.add(123);
//删值
a.remove(123);
//查值(是否存在)
a.contents(123);
//获取数列长度
a.size();

4.映射

//声明
Map m = new HashMap();
//增、改值
m.put("abc",123);
//查值
m.get("abc");
//删值
m.remove("abc");
//获取映射长度
m.size();

3.python

1.序列list

序列用[]

#声明
L = ['Michael', 100, True]
#调用
L[0]
#追加
L.append(123)
#插入
L.insert(1,234)
#删除
L.pop(0)#没有0即删除最后一项
#修改
L[1] = 345
#序列长度
len(L)

2.元组tuple

元组tuple用()表示

#声明
t = ('Adam', 'Lisa', 'Bart')
f=('Bart',)
#没有增,没有删,没有改方法
#查
t[0]
#元组长度
len(t)

3.映射dict

dict用{}表示

#声明
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
#查
d['Adam'] #会报错
d.get('Adam') #不会报错
#增、改
d['Paul'] = 100
#删
dict.pop('Adam')
#映射长度
len(d)

4.集合set

set用set([])表示,即set()中传入一个list

#声明
s = set(['a','b',1,2,3])
#增
s.add(4)
#删
s.remove(4)
#查(判断是否在内)
4 in s
#集合长度
len(s)

4.PHP

1.数组、映射

PHP中的数组用array()表示

/**
*声明
*/
//索引式数组(数组)
$fruit1 = ["apple","banana","pineapple"];
//关联式数组(映射)
$fruit2 = $fruit = [
    'apple'=>"苹果",
    'banana'=>"香蕉",
    'pineapple'=>"菠萝"
];

/**
*增
*/
//从头添加
array_unshift($fruit1,"orange","pear");
//从尾添加
array_push($fruit1,"orange","pear")

/**
*删
*/
//从头删
$fruit1 = array_shift($fruit1);
//从尾删
$fruit1 = array_pop($fruit1);

/**
*查
*/
$fruit1[0];
$fruit2['apple'];

/**
*改
*/
$fruit1[0] = 'watermelon';
$fruit2['apple'] = ''蘋果;

/**
*数组长度
*/
count($fruit1);
sizeof($fruit1);

4.javascript

1.数组

Js中的数组用[]表示

/**
*声明
*/
//方法一
var myarr=new Array();
myarr[1]=" 张三";
myarr[2]=" 李四";
//方法二
var myarray = new Array(66,80,90,77,59);
//方法三
var myarray = [66,80,90,77,59];

/**
*操作
*/
//增
myarray[5]=88;
//查
myarray[2];
//改
myarray[2] = 81;
//删
myarray.splice(1,1);//第一个参数是要删除元素的索引位置,第二个参数是删几个元素
//数组长度
myarray.length;

2.集合Set

//创建Set对象
//1.用new创建Set
let s1 = new Set();
let s2 = new Set([1,2,3]);
//2.用add命令增加元素
s1.add(5);
//也可以用.add连续加多个
s1.add(100).add(200);
//3.用size属性获取元素个数
console.log(s1.size);
//注意,不能用s.length,它没有定义这个属性
//4.用has判断元素是否存在
console.log(s1.has(100));//返回bool结果,true表示有,false表示无
//5.用delete删除元素
s1.delete(100);  //返回bool结果,true表示删除成功,false表示删除失败
s1.clear();//则是清除所有的元素

3.映射map

//1.创建一个map
var myMap=new Map();
//2.map的长度
myMap.size
//3.增加/修改键值对
myMap.set(key, value);
//4.删除键值对
myMap.delete(key);
//5.查值
myMap.get(key);

六、运算符

1、算术运算符

C、Java、PHP、js的算术运算符包括下图所列


image.png

image.png

Python的算术运算符包括下图所列


python的算术运算符.png

2、赋值运算符

C、Java、PHP、js的赋值运算符包括下表所列

表达式 说明
= 将等号右边的式子或结果付给等号左边的量
+= a+=5等同于a=a+5
-= a-=5等同于a=a-5
*= a=5等同于a=a5
/= a/=5等同于a=a/5
%= a%=5等同于a=a%5

Python的赋值运算符包括下图所列


python赋值运算符.png

3、关系(或称比较)运算符

C、Java、js的关系运算符包括下表所列


image.png

Python、PHP的关系运算符包括下图所列


python和PHP的关系运算符.png

注意:js和PHP中===表示全等

4、逻辑运算符

C、Java、PHP、js的逻辑运算符包括下图所列


image.png

Python、PHP的逻辑运算符包括下图所列


python的逻辑运算符.png

5、三目运算符

C、Java、PHP、js的三目运算符如下

判定条件?为真时的结果:为假时的结果

python的三目运算符如下

为真时的结果 if 判定条件 else 为假时的结果

6、按位运算符

运算符 含义 描述
& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
l 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1
^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1
~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0
<< 左移 用来将一个数的各二进制位全部左移N位,右补0
>> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0

七、循环语句

1、for循环

1.C

int myArray[] = {1,2,3,4,5};
int i;
for(i = 0;i<5;i++){
    printf("数组数字:%d\n", myArray[i]);
}

2.java

String[] str1 = {"Oracle","PHP","Linux","Java","HTML"};
//普通for循环
for(int i = 0;i<str.length;i++){
    System.out.println("课程是"+str[i]);
}

List<String> str2 = new ArrayList<String>();
str2.add("a");
str2.add("b");
str2.add("c");
str2.add("d");
//foreach循环
for(String eachStr:str2){
     System.out.println("字母是"+eachStr);
}

//使用Iterator迭代器遍历一
Iterator it<String> = str2.iterator();
while(it.hasNext()){
    System.out.println("字母是"+it.next());
}
//使用Iterator迭代器遍历二
for (Iterator<String> it = str2.iterator(); it.hasNext();) {
System.out.println("字母是"+it.next());
 }

3.Python

#遍历列表
L = ['Adam', 'Lisa', 'Bart']
for name in L:
    print name

#指定遍历范围
for i in range(0,len(L)-2):
    print("下标为 %s 的值为 %s" %(i,L[i]))

#遍历集合
s = set(['Adam', 'Lisa', 'Bart'])
for name in s:
    print name 

#遍历字典
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
#方法一
for (k,v) in dict.items():
    print "key:"+k+",value:"+str(v)
#方法二
for d,x in dict.items():
    print "key:"+k+",value:"+str(v)

4.PHP

$myArr1 = array("苹果","香蕉","橙子");
$myArr2 = array("苹果"=>"apple","香蕉"=>"banana","橙子"=>"orange");
//for循环
for($i = 0;$i<count($myArr1)){
    echo $myArr1[$i];
}
//foreach遍历关联式数组
foreach ($myArr1 as $v){
    echo $v;
}
//foreach遍历索引式数组
foreach ($myArr2 as $k => $v){
    echo "$k的值是$v";
}

5.js

//for循环

for (var k = 0, length = arr.length; k < length; k++) {
    alert(array[k]);
}
//foreach方法
var arr = [1, 2, 3, 4];
arr.forEach(function (element, index, array) {
    // element: 指向当前元素的值
    // index: 指向当前索引
    // array: 指向Array对象本身
    alert(element);
});

//for...of方法遍历Set
let s2 = new Set([1,2,3]);
for(let e of s2) {
    console.log(e);
}
//foreach方法遍历Set
s2.forEach(e=>console.log(e));

//for...in方法遍历map
var map = new Map();
map.set("a","apple");
map.set("b","bee");
for(var key in map){
  console.log("属性:" + key + ",值:" + map[key]);
}

2、while循环

1.C、java、PHP、js

while(判断条件){
    执行代码块
}

2.Python

while 判断条件:
    执行代码快

3、do…while循环

1.C、java

do{
    执行代码快
}while(判断条件);

2.PHP、js

do{
    执行代码快
}while(判断条件)

3.Python

Python不支持do … while语法、while(无限循环)和break组合起来替换 do … while。

八、分支判断语句

1、if…else语句

1.C、java、PHP、js

if(判断条件一){
    执行代码块一
}else if(判断条件二){
    执行代码块二
}else if(判断条件三){
    执行代码块三
}else{
    最后的执行代码
}

2.Python

if 判断条件一:
    执行代码块一
elif 判断条件二:
    执行代码块二
elif 判断条件三:
   执行代码块三
else:
    最后的执行代码

2、switch语句

1.C、java、PHP、js

switch(表达式){
    case 常量表达式一:
        执行代码块一
        break;
    case 常量表达式二:
        执行代码块二
        break;
    ……
    case 常量表达式N:
        执行代码块N
        break;
    default:
        执行代码块N+1
}

2.Python

Python当中没有switch。

八、函数/方法

1.C

#include <stdio.h> //头文件

/*
*一个打印矩形的函数
*/
int Matrix(int n){
    int i,j;
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

//函数的调用
int main(){
    Martix(5);
    return 0;
}


2.java

package com.demo.example //包名

public class MakeMatrix{

/*
*一个打印矩形的函数
*/
    public void Matrix(int n){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                System.out.print("*");
            }
            System.out.print("\n");
        }
    }

//调用
    public static void main(String[] args){
        MakeMarix mm = new Matrix();
        mm.Matrix(5);
    }
}

3.Python

#一个打印矩形的函数
def matrix(n):
    for i in range(1,n+1):
        for j in range(1,n+1):
            print "*"
        print "\n"
    return

#调用
matrix(5)

4.PHP

<?php
/*
*一个打印矩形的函数
*/
function matrix($n){
    for($i=0;$i<$n;$i++){
        for($j=0;$j<$n;$j++){
            echo "*";
        }
    echo "<br/>";
    }
}

//调用
matrix(5);
?>

5.Js

/*
*一个打印矩形的函数
*/
function matrix(n){
    for(var i=0;i<n;i++){
        for(var j=0;j<n;j++){
            document.write("*"};
        }
    document.write("<br/>");
    }
}

//调用
matrix(5);