基本语法结构

目录

一、循环语法

1.while循环

2.for循环

3.do while循环

二、分支语法(通常会配置比较运算符使用)

1.单分支

2.双分支

3.多分支

三、条件语法

1.switch语句

四、goto语法


一、循环语法

1.while循环

写法1:

while(表达式)

{

        //语句组

}

写法2:

while(表达式);        //其中的表达式可以是数值、运算语句、比较语句等

例如

        while(1);         //死循环

        while(a++);     //运算语句

        while(a++>3); //运算+比较

执行逻辑:先判断表达式是否成立,成立则执行具体语句组

(一般情况下‘;’和‘{}’属于互斥状态)

2.for循环

写法:

        for(表达式1;表达式2;表达式3;)

{

        //语句组

}

表达式1:赋值表达式,用来对参与循环的变量进行赋值

表达式2:循环条件表达式,用来判断循环是否能够执行

表达式3:算术表达式,用来改变参与循环判断的变量

(for循环中所有表达式都可以被省略,但是内部的三个分号不行)

例如以下四种写法

int i;
for(i = 0;i < 5;i++)
{
    printf("i = %d\t",i);
}
printf("\n");
//循环执行5次
i = 0;
for(;i < 5;i++)
{
    printf("i = %d\t",i);
}
printf("\n");
//省略了赋值表达式,循环执行5次
for(i = 0;;i++)
{
    printf("i = %d\t",i);
    if(i == 4)
    break;
}
printf("\n");
//省略了条件表达式,循环执行5次
for(i = 0;i < 5;)
{
    printf("i = %d\t",i++);
}
printf("\n");
//省略了算术表达式,循环执行5次

3.do while循环

写法

        do

{

        //语句组

}while(表达式);

执行逻辑:先执行语句组,在判断循环是否成立

a = 3;
do
{
    printf("a = %d\n",a);
}while(a-->1);
//循环了三次

二、分支语法(通常会配置比较运算符使用)

1.单分支

if(表达式)

{

        //语句组

}

执行逻辑:如果表达式成立,那么执行语句组,否则跳过语句组

int a = -5;
int b = 6;
if(a < b)    //如果a<b输出下面的语句,反则跳过该句
{
    printf("a<b\n");
}
if(a)
{
    printf("a = %d\n",a);
}

2.双分支

if(表达式1)

{

        //语句组1

}

else

{

        //语句组2

}

执行逻辑:如果表达式1成立,那么执行语句组1,反则跳过语句组1执行语句组2

if(a)
{
    printf("a = %d\n",a);
}
else
{
    printf("b = %d\n",b);
}

3.多分支

if(表达式1)

{

        //语句组1

}

else if(表达式2)

{

        //语句组2

}

...

else

{

        //语句组n

}

其中每个if匹配后面最近未匹配的else

break和continue用在循环中

break的作用是直接退出循环

continue的作用是跳过本次循环,执行下一次循环

(注意break语句可以用在switch语句中,但continue不行)

#include<stdio.h>

int main()
{
    int i;
    for(i = 0;i < 4;i++)
    {
        if(i == 2)
        {
            break;    //直接退出循环
        }
        printf("break:i = %d\n",i);
    }
    
    for(i = 0;i < 4;i++0
    {
        if(i ==2)
        {
            continue;
            //跳过本次循环,执行下一次循环。注意i++还是有执行
        }
        printf("continue:i = %d\n",i);
    }
    
    return 0;
}

三、条件语法

1.switch语句

写法

        switch(表达式)

        {

                case常量:

                        //语句组1

                default:

                        //语句组2

        }

常量:无法修改的数据(系统内部) 

变量:可以随意修改的数据(由程序员定义)

表达式:只能是整型常量表达式

(整型数据、字符型、枚举型)

其中字符类型因为字符在计算机中按照ASCII码来储存

执行逻辑:与if-else类似,根据常量的数值来执行相应的语句

#include<stdio.h>

int main()
{
    int num
    scanf("%d",&num);

    switch(num)
    {
        case 0:
            printf("num == 0\n");
            break;
    
        default:
            printf("num != 0\n");
            break;
    }
    //此处一共输出一次打印

    switch(num)
    {
        case 0:
            printf("num == 0\n");
 
        default:
            printf("num != 0\n");
    }
    //此处输出两次打印

    return 0;
}
//上述switch相当于if-else语句

if(num == 常量)
{
    //语句组1
}
else
{
    //语句组2
}

注意一般来说case语句需要配合break语句使用,如果没有break语句程序会一直往下运行 直到遇到break语句或者结束switch语句

例如从键盘中输入字符数据,然后输出相应的ASCII码数值,遇到‘#’退出循环:

#include<stdio.h>

int main()
{
    char str;
    int flag = 0;

    while(1)
    {
        scanf("%c",&str);
        //getchar();    此语句可以将缓冲区\n清除,或在下面用case语句跳过
        switch(str)
        {
            case'#':
                printf("遇到#,退出程序\n");
                flag = 1;    //此处为转变标志位
                break;

            case'\n':        //因为空格\n会占字符,所以跳过\n
                break;       //也可以在scanf语句下面添加getchar()

            default:
                printf("%c对应的ASCII码数值为:%d\n",str,(int)str);
                printf("请输入一个字符:\n");
                break;
        }
        
        if(flag == 1)    //此处判断是否遇到‘#’,如果遇到,那么标志位变为1
        {
            break;
        }
    }
    
    return 0;
}

如果需要用case来表示取值范围,需要有空格

错误示范:case 0...8:

正确示范:case 0 ...8:

四、goto语法

写法

        goto 标签名;

标签名:

        语句组;

作用:用于语句的跳转,但注意该语句容易破坏程序逻辑性,常用于系统内核开发

#include<stdio.h>

int main()
{
    goto exam;    //开始进行语句跳转
    return 0;

exam:    //标签名
    printf("语句\n");
}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Solidity是一种面向智能合约的编程语言,用于在以太坊平台上开发去中心化应用(DApp)。它的基本语法结构包括以下几个方面: 1. 声明:使用关键字`contract`来声明一个合约,类似于面向对象编程中的类。例如:`contract MyContract { ... }` 2. 状态变量:在合约中声明的变量称为状态变量,它们存储在以太坊区块链上。可以使用关键字`uint`、`bool`、`address`等来声明不同类型的变量。例如:`uint public myNumber;` 3. 函数:合约中的函数用于定义合约的行为。可以使用关键字`function`来声明函数,并指定函数的可见性(如`public`、`private`等)。例如:`function myFunction() public { ... }` 4. 事件:事件用于在合约中触发和记录特定的操作。可以使用关键字`event`来声明事件,并定义事件的参数。例如:`event MyEvent(address indexed _from, uint _value);` 5. 修饰器:修饰器用于修改函数的行为或者检查函数的前置条件。可以使用关键字`modifier`来声明修饰器,并在函数定义时使用修饰器。例如:`modifier onlyOwner() { ... }` 6. 构造函数:构造函数在合约创建时执行,并用于初始化合约的状态变量。构造函数与合约同名,并且没有返回类型。例如:`constructor() { ... }` 7. 继承:Solidity支持合约之间的继承关系,可以使用关键字`is`来实现继承。例如:`contract MyContract is BaseContract { ... }` 8. 异常处理:Solidity提供了异常处理机制,可以使用关键字`try`和`catch`来捕获和处理异常。例如:`try { ... } catch { ... }` 以上是Solidity的基本语法结构,通过这些基本元素可以编写出功能丰富的智能合约。如果你还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值