unturned手机版吧 关注:2,746贴子:5,257

【编程学】逻辑*语法*判断

只看楼主收藏回复

适合语言:
c,c++,c#,java,javascript,vb等
适合人群:
未满高中的小p孩
minecraftPE js制作者
高中数学渣
编程爱好者过渡阶段
说明:
因为我不知道可以在什么地方发,lz学过很多的语言,甚至oracle都喵了一些,但对于HTML,php表示不感兴趣,主要是讲述语法和逻辑,格式之类的不同语言有不同的格式,所以只会提几个简易的。
这是我的吧,水无条封


来自Android客户端1楼2015-08-27 18:13回复
    这个贴么我是想到什么就说什么,所以是没有目录的,我更新时间也不规范,如果喜欢可以收藏,如果不喜欢可以别看


    来自Android客户端2楼2015-08-27 18:14
    收起回复
      2025-07-29 19:20:17
      广告
      不感兴趣
      开通SVIP免广告
      所有的编程都有个初始的值叫hello world,这个值决定了这种语言的发展。随着这个值的扩大,出现了多种hello world:
      "hello world"
      ***********
      ###########
      helloworld
      HELLOWORLD
      h e l l o w o r l d
      (h,e,l,l,o, ,w,o,r,l,d)
      等等,而这些可以是变量,可以是数值,也可以作为一个表达式,但这些在终值的情况下还是会回到hello world,简单的来说,所有的值都是相通的。举个简单的例子吧,1个一块钱等于10个一毛钱,只不过它们的包装不一样,但表达的东西是相同的,拆开豪华的包装,本质完全一样。
      这也就说明,不同语言也是可以互相沟通的。
      Dim hz As string

      var hz
      hz=""
      是一个含义,不过储存的位置不一样,比方说Dim的存储在c盘,var的储存在d盘,沟通的方法就是通过函数通过算法从c盘的Dim找到d盘的var并把两个值挂上等于号
      hz==hz
      这就是个简单的沟通
      所以computer存储的东西只有两个,0和1,把数字换为2进制
      0 0
      1 1
      2 00
      3 01
      满2进1
      而英文也有独立的运转方法,至于怎么运算的就自己去查吧,我举个假设,从a开始,大写0,小写1,满位 (空),空留 (双空)
      那么ab c就是
      10 11 100
      当然这只是个假设了,因为方便嘛


      来自Android客户端3楼2015-08-27 18:37
      回复
        编程语言要学的第一个东西称之为变量,本贴不是给什么都不懂的小白看的,而是给大白到火柴到大触这一阶段的人看的。
        语言也分高级和低级,就好比老师永远比学生大,怎么判断谁更高级呢?这时候需要用到多态来证明。
        在vb中的定义变量是
        Dim 变量名 As 内型
        在js中的定义变量是
        var 变量名
        vb中一开始就把变量设为了一个固定数值,且把值的范围划好了,而js并没有固定内型,只是定义出一个需态变量作为非固定变量来使用,所以vb>js。
        高级的语言可以帮助我们完成更多更强大的软件,插件,但其所包含的数据也将越大,as函数表,lz最先接触的是minecraft这款游戏,我从入门js到写gui直到自定义v只花了2个月左右,好记性不如烂笔头,这句话一点也没错,当时完全没有现在那些教程,给你张函数表,给你几个运算法则,给你几个符号,好了你自己抄下来自己去研究去,学习编程不是看着详细的教程,而主要的是自己去研究,才能学的扎实,学的完美,不是你把别人的教程看了遍然后就说啊我懂了,编程是重兴趣,是种爱好,甚至是种事业,如果你不端正对编程的态度你就不要学了,因为你也就那样了。
        在js中举个例子
        1++1
        1 + + 1
        为什么第一个报错,学得不扎实的人是看不出来的,因为++是一个运算符号,意思是+1,而这样的算式
        1 +1 1系统无法得知最后一个1的用途,又不能自作主张的在后面那个1前加上+号或者-号,所以自然会报错,而后面的1 + + 1得到的结果是2,换个说法是1加上正1。这就是编程三大头中的语法。
        同样的
        1 +++ 1
        1+++1
        1 +++1
        1+++ 1
        这四个没有一个正确,空格要加在该加的地方
        1 ++ +1
        这个结果是3,化语是1加1加1
        1 + ++ 1
        报错
        就是这些简单的例子你能理会么,差的人一看,咦,报错,为什么呢?然后一看我的化语,喔,原来是这个意思。扎实的人一看,报错?有意思,我要记下来,喔,原来是符号错了,看看答案对不对。
        因为lz最后学的是vb,最初学的是javascript,所以映像最深刻,所以可能会多调用这里面的函数。


        来自Android客户端4楼2015-08-28 06:39
        收起回复
          大神求大腿


          IP属地:北京来自Android客户端5楼2015-08-28 06:58
          收起回复
            既然法神嫌简单那么我们来讲讲难的@法神之传说
            接下来讲讲数组,高中有个类叫做集合,那个集合跟数组差不多了。
            小于10的正奇数集合
            a=(1,3,5,7,9)
            集合b
            b=(x|x是小于10的正奇数)
            上列集合中a=b
            在集合中(a,b)和(b,a)是没有区别的,但在编程语言中或许有些时候需要注意,因为有些时候你要调用的是a(则为LZ(0)=a)但因为位置原因LZ(0)!=a而等于b,这就是注意的一个地方,当然在编程中,数组不仅仅那么简单。
            数组可以是一维也可以是多维,既可以有矩形数组也可以有交错数组,甚至是任意的混合数组,用c#吧,好久没用c#
            int[,][,,][] myArr
            算了,打字辛苦,来给大家看个简单的数组吧(这里采用c#)
            class Test
            {
            static void Main()
            {
            int[]arr=new int[5];
            for(int i=0;i<arr.Length;i++)
            arr[i]=i*i;
            for[int i=0;i<arr.Length;i++]
            Console.WriteLine("arr[{0}]={1}",i,arr[i]);
            }
            }
            上面代码创建一个int值的一维数组,初始化元素数组后将他们打印出来,产生的输出是0,1,4,9,16
            滑稽滑稽,怎么样,难不难


            来自Android客户端6楼2015-08-28 09:48
            收起回复
              前面的例程使用int内型既数组类型,数组类型是用非数组类型后门跟一个或多个秩说明符编写的。下面的例程么,自己看,还有我的米手机换了字体,现在我分不清楚哪个是小括号,你也自己看着办


              来自Android客户端8楼2015-08-28 10:00
              回复
                乌拉乌拉乌拉[略]
                int[] a1
                int[,] a2
                int[,,,] a3
                int[][] a4
                int[][][] a5
                int[,][,,][] myArr
                依次下来是
                一维数组
                二维数组
                三维数组
                交错数组
                混合数组
                (ฅ>ω<*ฅ)
                数组类型为引用类型,因此数组变量的声明只是为了数组的引用留出空间。数组实例实际上是通过数组初始值设定项和数组来创建表达式的。
                打个比方
                class Text
                {
                static void Main()
                {
                int[] a1=new int[]{1,2,3}
                int[,] a2=new int[,]{{1,2,3},{4,5,6}}
                int[,,] a3=new int[10,20,30]
                int[][] j2=new int[3][]
                j2[0]=new int[]{1,2,3}
                j2[1]=new int[]{1,2,3,4,5,6}
                j2[2]=new int[]{1,2,3,4,5,6,7,8,9}
                int[,][,,][]my Arr=new int[2,2][,,][]
                int i,j,k,m,n,l
                for(i=0;i<=myArr.GetUpperBound(0);j++)
                for(j=0;j<=myArr.GetUpperBound(1);j++)
                {
                myArr[i,j]=new int[2,2,2][]
                for(k=0;k<=myArr[i,j].GetUpperBound(1)l++)
                for(l=0;l<=myArr[i,j].GetUpperBound(1);l++)
                for(m=0;m<myArr[i,j].GetUpperBound(2);m++)
                {
                myArr[i,j][k,l,m].GetUpperBound(2);m++
                for(n=0;n<=myArr[i,j].GetUpperBound(0);n++)
                {myArr[i,j][k,l,m]=i+j+k+l+m+n
                后面一堆大括号略。。。


                来自Android客户端9楼2015-08-28 10:20
                回复
                  2025-07-29 19:14:17
                  广告
                  不感兴趣
                  开通SVIP免广告


                  IP属地:陕西来自Android客户端11楼2015-08-28 20:14
                  回复


                    来自Android客户端12楼2015-09-03 22:57
                    回复
                      前面那段函数我也懒得说是什么了,反正就是把各种数组都打印了出来罢了,接下来讲啥子哩,就讲讲逻辑吧


                      来自Android客户端13楼2015-09-26 23:05
                      回复
                        在很多情况下,位置是个很重要的元素,在语文,很多词比如说骄傲,骄和傲都是名词,所以把骄傲反过来成傲骄是一个意思,同样的,如果在写算法时突然要判断两个不相干的互补因素就可以通过位置来减小系统运算,在这里么就用下minecraft的js吧,因为方便些
                        假设:我要做一个js,当手上物品是铁剑时,然后做一个开关控制检测,那么一般是这么写的
                        var i=1
                        function modtick(){
                        if(get手中物品id/*函数忘了*/==267){
                        if(i==2){
                        触发的东西}}}
                        一般都是这么写,但是,这样写如果作为算法来运算就会增加一丢丢系统的运算,如何减少呢?很简单,换个位置就可以了。
                        function modtick(){
                        if(i==2){
                        if(get手中物品id==267){
                        触发的东西}}}
                        那么变了哪里呢?就是i==2的位置换了一下而已,i作为一个变量,就拥有预选性,而如果是get手中物品这段函数呢?首先要解读minecraft,然后进行破译,再找到玩家这个分类,然后获取玩家手中物品这个变量的值,再将值反回到核中,这是不是很麻烦,而如果是变量,就直接在核中调取,然后又传输给核,因为这需要两个条件都达成了才可以通过,所以如果第一个都没达成那系统就会继续这样重复重复,试问,是在原地踏步快一些还是绕操场跑一圈最后回到起点快一些,虽然这只是一个很小的运算,但如果是在实际大型算法中就要很注重这些顺序了,一个算法的不恰当可能会让你的电脑最高累计到崩溃卡机甚至无限闪退


                        来自Android客户端14楼2015-09-26 23:21
                        回复
                          那个1++ +1也会出错
                          ++是一种一元运算符,作用相当于+1,但不可以解释为+1
                          +既可以作为一元运算符,也可以作为二元运算符。
                          在1++ +1中,前两个+共同组成一个运算符,操作数是1。但是这个运算符是不可以操作常量的,所以会出错


                          IP属地:上海来自Android客户端15楼2015-10-03 20:58
                          收起回复
                            哦(⊙o⊙)哦(⊙o⊙)哦(⊙o⊙)哦(⊙o⊙)哦(⊙o⊙)哦(⊙o⊙)哦(⊙o⊙)哦(⊙o⊙)哦(⊙o⊙)哦(⊙o⊙)哦(⊙o⊙)哦(⊙o⊙)哦(⊙o⊙)哦(⊙o⊙)哦


                            IP属地:江苏来自Android客户端16楼2015-10-04 08:21
                            回复
                              2025-07-29 19:08:17
                              广告
                              不感兴趣
                              开通SVIP免广告
                              数组,顾名思义,一个个数字组成的组合,它比变量更容易调用,可以取到同时代替多个变量从而减小系统运算的作用,当然数组远不如此,所以很多大型的工程编写者都会选择数组多用于自己的算法,打个比方,用minecraft的吧:我要把一条线内所有的方块(点集)装箱并调用,那么这个如果用数组,会非常方便简洁:
                              var xx=α//长度
                              var w=New Array()//定义一个新的数组名字叫做w
                              for(var i=0;i<xx;i++){
                              w[i]=getTile(x+i,y,z)//装箱,其中x或y只能朝同一个方向,因为是一条线上
                              setTile(x+i,y,z,w[i])}//调用,调用方向可以和装箱方向不一致
                              那么先解释下什么叫调用方向,比方说,装箱时的顺序是:泥土,草方块,铁块,其中方向为x的正方向,泥土为原点(x+i,y,z),当调用时x设为x的负方向时,且原点还是泥土(x-i,y,z),则调出来为:铁块,草方块,泥土,草方块,铁块。假设吧调用原点往x负方向移1格(x-1-i),则调出来为:铁块,草方块,泥土,泥土,草方块,铁块。所以说数组并不仅仅能做出复制贴贴,还可以做出对折镜像等等。这样就可以轻易用modpe做出星跳水立方一般的视觉效果。喔,还有,教程是已经写好了的,本来上周要更但没有时间


                              来自Android客户端18楼2015-12-06 10:41
                              回复