for 语句执行顺序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了for 语句执行顺序相关的知识,希望对你有一定的参考价值。

比如
for(i=2;i<m;i++)
这个是先执行i=2,然后判断是否满足条件,如果满足,执行循环体
不满足就不执行循环体吗?
太初级了
不过今天突然就想不明白了

for语句执行过程如下:

①先对表达式1赋初值;

②判别表达式2是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行表达式3,进入第二次循环,再判别表达式2……;否则判断表达式2的值为假,不满足条件,就终止for循环,执行循环体外语句。for语句语法流程如下图所示:

例题:

# include

main ()

int n,nu;

nu=0;

for (n=1;n<=200;n++)

nu+=n;

printf ("nu=%d\\n",nu);

编译并执行后,屏幕显示:

nu=20100

在程序中,for语句小括号内的三个表达式分别为:n=1;n<=200;n++。表达式1,n=1是给n赋初值,表达式2是关系表达式,n小于等于200时,表达式都为真,则执行循环体内的语句nu+=n;(即nu=nu+n;),然后执行表达式3(n++),进入下一轮循环;若n大于200时,表达式2为假,则终止循环,执行printf()语句,在屏幕上打印出:nu=20100。

参考技术A 我想你应该是对的,对于for循环的表达形式为:for(表达式1;表达式2;表达式3)循环体,表达式1是对变量进行初赋值,表达式2是控制循环体执行的条件,表达式3是控制变量的增减,执行顺序为:先执行表达式1,如果满足表达式2,则执行循环体,否则退出;执行循环体语句后,都要执行表达式3一次,得到变量的新值,再执行表达式2,一直循环下去,直到退出循环!呵呵~ 参考技术B 执行顺序

i = 2 ;

if i < m

执行循环体,执行完毕就执行 i++;

如果不满足条件,就退出循环哦
参考技术C 打开哔哩哔哩,搜索"详解c语言之for循环执行顺序",有详细讲解for循环 参考技术D 有什么不理解,你可以发完代码出来,大家帮你参考下

Go流程结构(for)

一、程序的流程结构

@author:韩茹

版权所有:北京千锋互联科技有限公司

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

顺序结构:代码从上向下逐行的执行

选择结构:条件满足,某些代码才会被执行。0-1次

if语句,switch语句

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

for语句

二、循环语句

循环语句表示条件满足,可以反复的执行某段代码。

for是唯一的循环语句。(Go没有while循环)

##2.1 for语句

语法结构:

 for init; condition; post { }

初始化语句只执行一次。在初始化循环之后,将检查该条件。如果条件计算为true,那么{}中的循环体将被执行,然后是post语句。post语句将在循环的每次成功迭代之后执行。在执行post语句之后,该条件将被重新检查。如果它是正确的,循环将继续执行,否则循环终止。

示例代码:

 package main
 ?
 import (  
     "fmt"
 )
 ?
 func main() {  
     for i := 1; i <= 10; i++ {
         fmt.Printf(" %d",i)
     }
 }

在for循环中声明的变量仅在循环范围内可用。因此,i不能在外部访问循环。

 

2.2 for循环变体

所有的三个组成部分,即初始化、条件和post都是可选的。

 for condition { }

效果与while相似

 for { }
package main

import "fmt"

func main() {
	/*
	1. 标准写法:
		for 表达式1;表达式2;表达式3{
			循环体
		}
	2.同时省略表达式1和表达式3
		for 表达式2{

		}
	相当于while(条件)
	3.同时省略3个表达式
		for{

		}
	相当于while(true)
	注意点:当for循环中,省略了表达式2,就相当于直接作用在了true上

	4.其他的写法:for循环中同时省略几个表达式都可以。。
		省略表达式1:
		省略表达式2:循环永远成立-->死循环
		省略表达式3:
	 */
	i := 1
	for i <= 5 {
		fmt.Println(i)
		i++
	}
	fmt.Println("-->",i)

	fmt.Println("------------")
	for{
		fmt.Println("i--->",i)
		i++
	}
}

for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环

 for key, value := range oldMap {
     newMap[key] = value
 }
 package main
 ?
 import "fmt"
 ?
 func main() {
 ?
    var b int = 15
    var a int
 ?
    numbers := [6]int{1, 2, 3, 5} 
 ?
    /* for 循环 */
    for a := 0; a < 10; a++ {
       fmt.Printf("a 的值为: %d
", a)
    }
 ?
    for a < b {
       a++
       fmt.Printf("a 的值为: %d
", a)
       }
 ?
    for i,x:= range numbers {
       fmt.Printf("第 %d 位 x 的值 = %d
", i,x)
    }   
 }

2.2 多层for循环

for循环中又有循环嵌套,就表示多层循环了。

 

三、跳出循环的语句

1、 break语句

break:跳出循环体。break语句用于在结束其正常执行之前突然终止for循环

示例代码:

 package main
 ?
 import (  
     "fmt"
 )
 ?
 func main() {  
     for i := 1; i <= 10; i++ {
         if i > 5 {
             break //loop is terminated if i > 5
         }
         fmt.Printf("%d ", i)
     }
     fmt.Printf("
line after for loop")
 }

2、continue语句

continue:跳出一次循环。continue语句用于跳过for循环的当前迭代。在continue语句后面的for循环中的所有代码将不会在当前迭代中执行。循环将继续到下一个迭代。

示例代码:

 package main
 ?
 import (  
     "fmt"
 )
 ?
 func main() {  
     for i := 1; i <= 10; i++ {
         if i%2 == 0 {
             continue
         }
         fmt.Printf("%d ", i)
     }
 }

四、goto语句

goto:可以无条件地转移到过程中指定的行。

语法结构:

 goto label;
 ..
 ..
 label: statement;
package main

import "fmt"

func main() {
	/*
	goto语句:

	 */

	var a = 10
LOOP:
	for a < 20 {
		if a == 15 {
			a += 1
			goto LOOP
		}
		fmt.Printf("a的值为:%d
", a)
		a++
	}

	fmt.Println("----------------")
	for i := 0; i < 10; i++ {
		for j := 0; j < 10; j++ {
			if j == 2 {
				goto breakHere
			}
			fmt.Println("j的值为", j)
		}
	}

breakHere:
	fmt.Println("done...")
}

统一错误处理 多处错误处理存在代码重复时是非常棘手的,例如:

     err := firstCheckError()
     if err != nil {
         goto onExit
     }
     err = secondCheckError()
     if err != nil {
         goto onExit
     }
     fmt.Println("done")
     return
 onExit:
     fmt.Println(err)
     exitProcess()

 ?
 ?

 

以上是关于for 语句执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

for循环执行顺序

for循环的执行顺序?

带嵌套的Sql语句执行顺序问题

关于Oracle语句的执行顺序

两个嵌套for循环的执行顺序

SQL语句执行流程与顺序原理解析