1.for循环概念

程序的流程控制结构一共有三种: 顺序结构,选择结构,循环结构。

  • 顺序结构:代码从上向下逐行的执行
  • 选择结构:条件满足,某些代码才会被执行。0-1次

    if语句,switch语句
  • 循环结构:条件满足,某些代码会被反复的多次执行。0-n次

    for语句

值得注意的是GO语言不像Java等其他语言,还有什么while、dowhile;简单一句话:一个For打天下

2.for的基本用法

/**
语法结构
for init;condition;post{ } init:初始化语句
condition:条件判断语句
post:步进表达式 初始化语句只执行一次。在初始化循环之后,将检查该条件。
如果条件计算为true,那么仆中的循环体将被执行,然后是post语句。
post语句将在循环的每次成功迭代之后执行。在执行post语句之后,该条件将被重新检查。
如果它是正确的,循环将继续执行,否则循环终止。
*/ for i := 1; i <= 5; i++ {
fmt.Println("hello Go")
}
// fmt.Println(i)

3.for的其他写法

// 其他写法一:省略初始化语句和步进表达式
/**
for 条件语句 { }
等同于Java中的while(条件){}语句
*/
// for j := 1; j <= 5; j++ {
// fmt.Println(j)
// } // 变形,相当于提升了作用域
j := 1
for j <= 10 {
fmt.Println(j)
j++
}
fmt.Println(j) // 其他写法二:省略三个表达式
/**
for{}
和Java中的写法一样,死循环
*/
for {
fmt.Println(j)
} // 其他写法... 省略三个表达式其中的任意组合

4.for的小案例

// for循环小案例
// 1.打印100-1
for x := 100; x > 0; x-- {
fmt.Println("x:", x)
} // 2.求1-100的和
sum := 0
for y := 1; y <= 100; y++ {
sum += y
}
fmt.Println("1-100的和为sum:", sum) // 3.打印1-100内,能够被3整除,但是不能被5整除的数字,
// 统计被打印的数字的个数,每行打印5个
count := 0
for m := 1; m <= 100; m++ {
if m%3 == 0 && m%5 != 0 {
count++
fmt.Print("m:", m)
fmt.Print("\t")
if count%5 == 0 {
fmt.Println()
}
}
}
fmt.Println()
fmt.Println("count:", count)

5.for嵌套

// for循环嵌套
/**
案例1:
打印
*****
*****
*****
*****
*****
案例二:
九九乘法表
*/ // 案例1:
for i := 0; i < 5; i++ {
for j := 0; j < 5; j++ {
fmt.Print("*")
}
println()
} // 案例二:
for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
fmt.Print(j, "*", i, "=", i*j, "\t")
}
println()
}

6.break和continue

循环控制语句,这一块和Java中一样的

  • break:彻底的结束循环。。终止
  • continue: 结束了某一次循环,下次继续。。中止

// break
for i := 1; i < 10; i++ {
if i == 5 {
break
}
fmt.Println(i)
} // continue
for i := 0; i < 10; i++ {
if i == 5 {
continue
}
fmt.Println(i)
}

7.循环标签名

// 针对循环嵌套处理,取别名实现内外循环控制
out:
for i := 0; i < 10; i++ {
for j := 0; j < 5; j++ {
println(j)
if j == 2 {
// break out
continue out
}
}
}

8、打印水仙花

num := 299
geWei := num % 10
fmt.Println(geWei) shiWei := num / 10 % 10
fmt.Println(shiWei) baiWei := num / 100
fmt.Println(baiWei) // 打印100-999的水仙花数
for i := 100; i <= 999; i++ {
// 拿到一个数的个位
ge := i % 10
shi := i / 10 % 10
bai := i / 100 % 10 // 复杂写法
// if i == ge*ge*ge+shi*shi*shi+bai*bai*bai {
// fmt.Print("水仙花数:", i)
// } // math.Pow(float64(ge), 3) : 求一个数的多少次幂
if float64(i) == math.Pow(float64(ge), 3)+math.Pow(float64(shi), 3)+math.Pow(float64(bai), 3) {
fmt.Println(i)
}
} // 打印2-1000内的素数(素数:只能被1和本身整除的数)
for i := 2; i <= 1000; i++ {
flag := true
for j := 2; j < i; j++ {
if i%j == 0 {
flag = false // 不是素数
break
}
}
if flag {
fmt.Println("是素数", i)
}
} // 优化写法,
for i := 2; i <= 100; i++ {
flag := true
for j := 2; j < int(math.Sqrt(float64(i))); j++ {
if i%j == 0 {
flag = false // 不是素数
break
}
}
if flag {
fmt.Println("是素数", i)
}
}

9、For语句的更多相关文章

  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. Linux 内核设备树时钟绑定

    这种绑定依然处于开发中,并且基于 benh[1] 的一些实验性工作. 时钟信号源可以由设备树中的任何节点表示.这些节点被指定为时钟提供者.时钟消费者节点使用 phandle 和时钟指示符对将时钟提供者 ...

  2. 【SQL】所谓的连表查询

    连表查询 外连接 外连接分为两种,左(外)连接和右(外)连接 基本语法如下: SELECT 字段列表 FROM 表1 LEFT JOIN 表2 ON 条件; 这是左连接,因此以表1中的 [字段列表] ...

  3. CodeForces 1388D Captain Flint and Treasure

    题意 给长度为\(n\)的序列\(a[n]\)和\(b[n]\),初始时\(ans=0\),有以下操作: \(ans=ans+a[i]\) 如果\(b[i]\neq-1\),则\(a[b[i]]=a[ ...

  4. SpringBoot整合ueditor编辑器

    1.到ueditor编辑器官网下载jsp版(目前官网地址改为了GitHub)https://ueditor.baidu.com/website/download.html2.下载解压后复制到当前项目3 ...

  5. jQuery下拉框级联实现

    参考代码: //企业类别级联 function getCatalog(){ var name=document.getElementById("Lcata").value; var ...

  6. SQL Server用户的设置与授权

    SQL Server用户的设置与授权 SSMS 登陆方式有两种,一是直接使用Windows身份验证,二是SQL Server身份验证.使用SQL Server用户设置与授权不仅可以将不同的数据库开放给 ...

  7. 3-MySQL基本数据类型介绍

    数据类型的介绍: 数据类型(data_type)是指系统中所允许的数据的类型.数据库中的每个列都应有适当的数据类型,用于限制或允许该列中存储的数据.例如,列中存储的为数字,则相应的数据类型应该为数值类 ...

  8. Eclipse OSGI配置文件说明

  9. C++20起支持的一个小特性

    注释掉的为传统的写法,从C++20起支持default关键字修饰的写法,即使是成员变量有多个的时候也支持,减轻了程序员的心智负担.

  10. python第2~5章 学习笔记

    # 第2~5章 学习笔记 ## 什么是计算机语言 计算机就是一台用来计算机的机器,人让计算机干什么计算机就得干什么! 需要通过计算机的语言来控制计算机(编程语言)! 计算机语言其实和人类的语言没有本质 ...