Go基本语句
递增递减语句
在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基本语句的更多相关文章
- python第六天 函数 python标准库实例大全
今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...
- whdxlib
1 数据库系统实现 实 验 指 导 书 齐心 彭彬 计算机工程与软件实验中心 2016 年 3 月2目 录实验一.JDBC 应用程序设计(2 学时) ......................... ...
- 【.net 深呼吸】细说CodeDom(2):表达式、语句
在上一篇文章中,老周厚着脸皮给大伙介绍了代码文档的基本结构,以及一些代码对象与CodeDom类型的对应关系. 在评论中老周看到有朋友提到了 Emit,那老周就顺便提一下.严格上说,Emit并不是针对代 ...
- 将表里的数据批量生成INSERT语句的存储过程 增强版
将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...
- mysql学习之 sql语句的技巧及优化
一.sql中使用正则表达式 select name,email from user where email Regexp "@163[.,]com$"; sql语句中使用Regex ...
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...
- MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
- MyBatis源码分析(二)语句处理器
StatementHandler 语句处理器,主要负责语句的创建.参数的设置.语句的执行.不负责结果集的处理. Statement prepare(Connection connection, Int ...
- 一条Sql语句分组排序并且限制显示的数据条数
如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...
随机推荐
- eclipse中去掉警告提示
有时候我们要去掉这些不必要的提示 下面我们来设置去掉这些警告提示
- istringstream 用法
istringstream 类用于执行C++风格的串流的输入操作 istringstream用空格作为字符串分隔符 #include <iostream>#include <sstr ...
- 从互信息的角度来理解tf-idf
先介绍tf idf 在一份给定的文件里,词频(term frequency,tf)指的是某一个给定的词语在该文件中出现的频率.这个数字是对词数(term count)的归一化,以防止它偏向长的文件.( ...
- HTML5标签学习
<abbr> 表示一个缩写形式,比如 "Inc."."etc.".通过对缩写词语进行标记,您就能够为浏览器.拼写检查程序.翻译系统以及搜索引擎分度器 ...
- Ajax-05 使用XMLHttpRequest和jQuery实现Ajax实例
需求: (django)使用XMLHttpRequest和jQuery实现Ajax加法运算 url.py: from django.conf.urls import url from hello im ...
- python递归 及 面向对象初识及编程思想
递归 及 面向对象初识及编程思想 一.递归 1.定义: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. (1)递归就是在过程或函数里调用自身: (2)在使用递 ...
- inline,block,inline-block解析
display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div& ...
- New Concept English three (43)
30 54 Insurance companies are normally willing to insure anything. Insuring public or private proper ...
- 【python】《利用python进行数据分析》笔记
[第三章]ipython C-a 到行首 C-e 到行尾 %timeit 测量语句时间,%time是一次,%timeit是多次. %pdb是自动调试的开关. %debug中,可以用b 12在第12行设 ...
- QT5入门之12 - QDebug输出调试信息
这个很简单,二步即可. 1.添加头文件 #include <qdebug.h> 2.输出信息 qDebug("Test:%d",id); (%d表示整数) 3.格式化信 ...