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 ...
随机推荐
- python 低版本一段扫描代码
个人在做Linux渗透测试往内网跨的时候,通常我碰到的Linux环境都会是如下集中情况 1: DMZ,严格的DMZ,根本跨不到内网里去.这种最恶心了. 2:WEB SERVER,严格区分,工作机和工作 ...
- Hibernate -- 对象关系映射基础
- 教你打造一个Android组件化开发框架
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 CC:Component Caller,一个android组件化开发框架, 已开源,github地址:https://github ...
- mysql学习笔记(Centos下rpm编译配置+远程访问)
新工作以来,博主感觉天天都很忙,博客已经好久没有写了 从昨天开始弄centos服务器中搭建mysql5.6,由于yum最新版本只有5.1的所以折腾到现在 首先看看是否已安装过其他版本的mysql [r ...
- Django进阶Template篇002 - 模板包含和继承
包含 {% include %} 允许在模板中包含其他模板的内容. {% include "foo/bar.html" %} {% include template_name %} ...
- jfinal微信支付
private static final String appid = PropKit.get("appid"); //应用ID private static final Stri ...
- 原子变量与CAS算法
原子变量 为了引出原子变量这个概念,我们先看一个例子. package com.ccfdod.juc; public class TestAtomicDemo { public static void ...
- struts转换器
struts转换器:在B/S应用中,将字符串请求参数转换为相应的数据类型,是MVC框架提供的功能,而Struts2是很好的MVC框架实现者,理所当然,提供了类型转换机制. 一.类型转换的意义 对于一个 ...
- poi自定义颜色设置(转)
原文链接 http://javapolo.iteye.com/blog/1604501 最近在项目的开发中使用到了apache poi,该组件可以让我们方便的操作excell,该工具非常容易上手,但 ...
- Git介绍及基本操作
Git基本概念 在Git中,我们将需要进行版本控制的文件目录叫做一个仓库(repository),每个仓库可以简单理解成一个目录,这个目录里面的所有文件都通过Git来实现版本管理,Git都能跟踪并记录 ...