递增递减语句
在GO中,++与--是作为语句而并不是作为表达式

package main
import "fmt"
func main() {
a:=
//a=a++ //语句而非表达式,只能放左边,go里不支持
a++
fmt.Println(a)
}

判断语句if
条件表达式没有括号,块需加花括号 即使只有一行
支持一个(只支持1个)初始化表达式(可以是并行方式)
左大括号必须和条件语句或者else在同一行
支持单行模式
初始化语句中的变量为block级别,同时隐藏外部同名变量

package main
import "fmt"
func main() {
a:=
if a,b:=,; a<b { //左大扩号必须和if同行 if a:=2,b:=3; a<b写法错误,只支持1个初始化表达式
fmt.Println(a) //
}
fmt.Println(a) //只在if语句块里有值 10
fmt.Println(b) //undefined: b
}

循环语句for
GO只有for一个循环语句关键字,但支持3种形式
初始化和步进表达式可以是多个值
条件语句每次循环都会被重新检查,因此不建议在条件语句中使用函数,尽量提前计算好条件并以变量或常量代替
左大括号必须和条件语句在同一行(格式化)
第一种形式

package main
import "fmt"
func main() {
a:=
for{
a++
if a>{
break
}
fmt.Println(a) }
}

第二种形式

func main() {
a:=
for a<{
a++
fmt.Println(a)
}
}

第三种形式

func main() {
for a:=;a<;a++{
fmt.Println(a)
}
}

注意

func main() {
s:="abcd"
for a:=;a<len(s);a++{ //每次循环 都会执行len(s) 建议赋值给变量再放在for判断表达式里
fmt.Println(a)
}
}

分支选择 switch语句
可以使用任何类型或表达式作为条件语句
不需要写break,一旦条件符合自动终止
如希望继续执行下一个case,需使用fallthrough语句
支持一个初始化表达式(可以是并行式),右侧需跟分号
左大括号必须和条件语句在同一行

func main() {
a:=
switch a{
case :
fmt.Println("a=0")
case :
fmt.Println("a=1")
fmt.Println("ok")
default:
fmt.Println("default")
}
}
func main() {
a:=
switch {
case a>=:
fmt.Println("a=0")
case a>=:
fmt.Println("a=1")
fmt.Println("ok")
default:
fmt.Println("default")
}
}
//只输出a=0 自动break
func main() {
a:=
switch {
case a>=:
fmt.Println("a=0")
fallthrough
case a>=:
fmt.Println("a=1")
fmt.Println("ok")
fallthrough
default:
fmt.Println("default")
}
}
/*
输出
a=0
a=1
ok
default
*/
func main() {
switch a:=; {
case a>=:
fmt.Println("a=0")
fallthrough
case a>=:
fmt.Println("a=1")
fmt.Println("ok")
fallthrough
default:
fmt.Println("default")
}
fmt.Println(a);// undefined: a
}
//输出结果同上

跳转语句goto,break,continue
三个语法都可以配合标签使用
标签名区分大小写,若不使用会造成编译错误
break与continue配合标签可用于多层循环的跳出
goto是调整执行位置

func main() {
// LABEL1:
for{
for i:=;i<;i++{
fmt.Println(i);
if i>{
// break LABEL1
goto LABEL2
}
}
}
LABEL2:
}
func main() {
LABEL1:
for i:=;i<;i++{
for {
continue LABEL1
fmt.Println(i);
}
fmt.Println(i);
}
fmt.Println("ok!")
}
//只输出ok!
func main() {
LABEL1:
for i:=;i<;i++{
for{
fmt.Println(i)
continue LABEL1
}
}
}
//输出0-9 //continue换成goto 会死循环输出0

Go基本语句的更多相关文章

  1. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  2. whdxlib

    1 数据库系统实现 实 验 指 导 书 齐心 彭彬 计算机工程与软件实验中心 2016 年 3 月2目 录实验一.JDBC 应用程序设计(2 学时) ......................... ...

  3. 【.net 深呼吸】细说CodeDom(2):表达式、语句

    在上一篇文章中,老周厚着脸皮给大伙介绍了代码文档的基本结构,以及一些代码对象与CodeDom类型的对应关系. 在评论中老周看到有朋友提到了 Emit,那老周就顺便提一下.严格上说,Emit并不是针对代 ...

  4. 将表里的数据批量生成INSERT语句的存储过程 增强版

    将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...

  5. mysql学习之 sql语句的技巧及优化

    一.sql中使用正则表达式 select name,email from user where email Regexp "@163[.,]com$"; sql语句中使用Regex ...

  6. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

    Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...

  7. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  8. Oracle 数据库语句大全

    Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...

  9. MyBatis源码分析(二)语句处理器

    StatementHandler 语句处理器,主要负责语句的创建.参数的设置.语句的执行.不负责结果集的处理. Statement prepare(Connection connection, Int ...

  10. 一条Sql语句分组排序并且限制显示的数据条数

    如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...

随机推荐

  1. android studio 更新Gradle版本方法

    在导入其他项目时,经常由于gradle版本不一致而导致不能编译 解决方法: 第一步: 按提示点击让它下载,其实目的并不是要它下载,因为这样速度会很慢,这样做只是为了让它在本地创建相应的目录结构 第二步 ...

  2. Search for a range, 在一个可能有重复元素的有序序列里找到指定元素的起始和结束位置

    问题描述:给定一个有序序列,找到指定元素的起始和结束位置.例如:1234555,5,起始4结束6 算法分析:其实就是一个二分查找的利用.但是特殊就在不是找到某个元素,而是找到下标.也就是在nums[m ...

  3. combo

    什么是combo 上一节中我们有一行代码: <script src="http://g.tbcdn.cn/kissy/k/1.4.8/??seed-min.js,import-styl ...

  4. 【Hive】数据类型

    1.基本类型 整型:tinyint / samllint / int / bigint 浮点型:float / double / Decimals 布尔型:boolean 字符串:string / v ...

  5. Redis Web界面管理工具

    Redis Web界面管理工具   一个很友好的Redis Web界面管理工具.基于.NET实现.可以通过Mono部署到Linux上,下面是我部署在CentOS 5.7 + Mono 2.10.8 + ...

  6. SurfaceView基本使用--动态画正弦函数

    package com.zzw.TestSurfaceView; import android.content.Context; import android.graphics.Canvas; imp ...

  7. Java基础学习-抽象类

    package abstractclass; /* * 抽象类的概述: * 1.抽象类用abstract来修饰方法或者类 * 2.没有具体的方法体的方法便是抽象方法. */ class CF{ pub ...

  8. 【tensorflow:Google】一、深度学习简介

    参考文献:<Tensorflow:实战Google深度学习框架> [一]深度学习简介 1.1 深度学习定义 Mitchell对机器学习的定义:任务T上,随着经验E的增加,效果P也可以随之增 ...

  9. 【CSAPP】一、计算机系统漫游

    一.位+上下文 文本文件 / 二进制文件: 文本文件是只由ASCII码构成的文件 二.从源代码到可执行文件的顺序 源代码 ——> 可执行文件(机器代码)共有四步: 全过程代码 gcc hello ...

  10. TCP中的服务端与客户端的实现

    TCP中首先要在服务端开启监听,这样才可以从客户端链接 using System; using System.Collections.Generic; using System.Linq; using ...