2016-01-15 17:15:33 sevenquan 阅读数 1213
  • C语言从入门到精通+贪吃蛇游戏开发实战

    掌握C语言数据类型,printf,scanf函数,运算符,if语句,switch语句,for,while,do...while循环语句;常用数学函数应用;一维数组,多维数组,查找和常用排序算法,结构体与指针,自定义函数的定义与使用,函数的实参与形参;用户图形界面,大量的上课习题,深入浅出的详细讲解,结合开发贪吃蛇游戏实战项目,能达到精通C语言的目标。

    18549 人正在学习 去看看 赖国荣

        

//        while 循环执行一系列语句直到条件变成 false while 循环使用于第一次迭代时迭代值未知的情况下

//        while 循环:在每次循环开始时判断条件是否为 true

//        do-while 循环:在每次循环结束时判断条件是否为 true

        

        //while 循环从判断一个循环条件开始:如果条件为true,重复执行一组代码,直到条件变为false

        

        while whilecondition{

            

        }

        

        //do-while while 循环的另一种形式,它和 while 的区别是:先执行一次循环的代码块,再在判断循环条件,然后重复执行循环的代码块直到循环条件为 false

        

        do {

            

        } while whilecondition



2015-03-13 00:21:35 qq350116542 阅读数 438
  • C语言从入门到精通+贪吃蛇游戏开发实战

    掌握C语言数据类型,printf,scanf函数,运算符,if语句,switch语句,for,while,do...while循环语句;常用数学函数应用;一维数组,多维数组,查找和常用排序算法,结构体与指针,自定义函数的定义与使用,函数的实参与形参;用户图形界面,大量的上课习题,深入浅出的详细讲解,结合开发贪吃蛇游戏实战项目,能达到精通C语言的目标。

    18549 人正在学习 去看看 赖国荣

在Swift中, 也有控制流, 分别是For, For-In, For条件递增, While, Do-While等等, 让我们一起来探讨一下:


1.For循环

在Swift中提供两种循环, 一种是For-In, 另一种是For条件递增, 先来看第一种:

for index in 1...5 {
    println("\(index) times 5 is \(index * 5)")
}
// 打印出来的结果: 
//1 times 5 is 5
//2 times 5 is 10
//3 times 5 is 15
//4 times 5 is 20
//5 times 5 is 25

如果你不需要知道范围内每一项的值,你可以使用下划线(_)替代变量名来忽略对值的访问:

let base = 3
let power = 10
var answer = 1

for _ in 1...power {
    answer *= base
}
println("\(base) to the power of \(power) is \(answer)")
// 打印出来的结果:3 to the power of 10 is 59049

在前面数组和字典的遍历就已经举过例子了, 所以这里就不再列举了.


2.For条件递增

在Swift中, 我们也可以使用使用条件递增, 只不过和OC有一些区别, 现在让我们来看看:

for var index = 0; index < 3; ++index {
    println("indx is \(index)")
}
// 打印出来的结果: indx is 0
// indx is 1
// indx is 2

其他的基本上都差不多, 知识在Swift中的声明不太一样.


3.While循环

While循环其实和OC也是差不多的, 让我们来看看例子:

var square = 0
var diceRoll = 0
let finalSquare = 25
var board = [Int](count: finalSquare + 1, repeatedValue: 0)
while square < finalSquare {
    if ++diceRoll == 7{
        diceRoll = 1
    }
    square += diceRoll
    if square < board.count {
        square += board[square]
    }
}
println("\(square), \(diceRoll), \(finalSquare)")
// 打印出来的结果: 27, 3, 25

原理基本上都差不多只是有一些细节需要注意一下.


4.Do-While循环

在Swift中的Do-While循环里, 和OC中的Do-While差别也不大, 让我们来看看例子:

var a = 20
var b = 10
do {
if ++b == a{
        a = 0
    }
} while a > b
println("\(a), \(b)")
// 打印出来的结果: 0, 20

5.条件语句

在Swift中, 也有判断的条件语句, 那就是if, 用法和OC一样, 没区别, 让我们来看看吧:

var temperatureInFahrenheit = 30
if temperatureInFahrenheit <= 32 {
    println("It's very cold. Consider wearing a scarf.")
}
// 打印出来的结果: It's very cold. Consider wearing a scarf.

和OC一样, 用 if 语句来判断条件, 如果条件成立, 那么就会返回true, 否则就是false.


6.Switch开关

在Swift中的Switch开关非常的好用, 和OC不一样, 在OC中, 如果Switch忘记写break就会报错, 但是在Swift中就不需要写这个东西, 比如:

let someCharacter: Character = "e"
switch someCharacter {
    case "a", "e", "i", "o", "u":
    println("\(someCharacter) is a vowel")

    case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m","n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":
    println("\(someCharacter) is a consonant")

    default:
    println("\(someCharacter) is not a vowel or a consonant")
}
// 打印出来的结果: e is a vowel

在Switch中还可以这么使用:

let anotherCharacter: Character = "a"
switch anotherCharacter {
    case "a":
        break
    case "A":
        println("The letter A")
    default:
        println("Not the letter A")
}
// 打印出来的结果: 空的

PS: 在Swift中不存在隐式贯穿, 在Swift中, 一旦case执行完毕后, 就不会继续往下执行, 所以也就不需要break了, 但如果你的case是空的, 那么就必须得写break了, 因为在Swift中, Switch的开关必须得有一个内容.

同样的, 一个case也可以包含多个模式, 比如:
case


7.范围匹配

let count = 3_000_000_000_000
let countedThings = "stars in the Milky Way"
var naturalCount: String
switch count {
    case 0:
        naturalCount = "no"
    case 1...3:
        naturalCount = "a few"
    case 4...9:
        naturalCount = "several"
    case 10...99:
        naturalCount = "tens of"
    case 100...999:
        naturalCount = "hundreds of"
    case 1000...999_999:
        naturalCount = "thousands of"
    default:
        naturalCount = "millions and millions of"
    }
println("There are \(naturalCount) \(countedThings).")
// 打印出来的结果:There are millions and millions of stars in the Milky Way.

好了, 这次我们就讲到这里, 下次我们继续~

2014-10-28 17:14:31 u012386696 阅读数 875
  • C语言从入门到精通+贪吃蛇游戏开发实战

    掌握C语言数据类型,printf,scanf函数,运算符,if语句,switch语句,for,while,do...while循环语句;常用数学函数应用;一维数组,多维数组,查找和常用排序算法,结构体与指针,自定义函数的定义与使用,函数的实参与形参;用户图形界面,大量的上课习题,深入浅出的详细讲解,结合开发贪吃蛇游戏实战项目,能达到精通C语言的目标。

    18549 人正在学习 去看看 赖国荣

在代码业务中,条件判断是必不可少的,控制流程的语句在每种语言中都是差不多的。swift包括了:

if,switch,for-in,for,while,do-while



if 条件语句 (if else)    (if... else if ...  else)  

判断条件为true时执行相关代码。例如:

var a = 0

if a > 0 {

println("a > 0")

}else if a == 0{

println("a = 0")

}else{

println("a < 0")

}


switch switch语句会尝试把某个值与若干个模式(pattern)进行匹配。根据第一个匹配成功的模式,switch语句会执行对应的代码

例如:

let someCharacter: Character = "e"
switch someCharacter {
case "a", "e", "i", "o", "u":
    println("\(someCharacter) is a vowel")
case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m",
"n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":
    println("\(someCharacter) is a consonant")
default:
    println("\(someCharacter) is not a vowel or a consonant")
}

switch有几个注意事项:

1、case语句下必须包含至少一行代码

2、case语句下可以不包含break,它不存在隐式的贯穿

3、case可以进行区间匹配

let count = 3_000_000_000_000
let countedThings = "stars in the Milky Way"
var naturalCount: String
switch count {
case 0:
    naturalCount = "no"
case 1...3:
    naturalCount = "a few"
case 4...9:
    naturalCount = "several"
case 10...99:
    naturalCount = "tens of"
case 100...999:
    naturalCount = "hundreds of"
case 1000...999_999:
    naturalCount = "thousands of"
default:
    naturalCount = "millions and millions of"
}
println("There are \(naturalCount) \(countedThings).")

4、元组   你可以使用元组在同一个switch语句中测试多个值。元组中的元素可以是值,也可以是区间。另外,使用下划线(_)来匹配所有可能的值

例如:

let somePoint = (1, 1)
switch somePoint {
case (0, 0):
    println("(0, 0) is at the origin")
case (_, 0):
    println("(\(somePoint.0), 0) is on the x-axis")
case (0, _):
    println("(0, \(somePoint.1)) is on the y-axis")
case (-2...2, -2...2):
    println("(\(somePoint.0), \(somePoint.1)) is inside the box")
default:
    println("(\(somePoint.0), \(somePoint.1)) is outside of the box")
}

5、值绑定   case 分支的模式允许将匹配的值绑定到一个临时的常量或变量,这些常量或变量在该 case 分支里就可以被引用了——这种行为被称为值绑定

例如:

let anotherPoint = (2, 0)
switch anotherPoint {
case (let x, 0):
    println("on the x-axis with an x value of \(x)")
case (0, let y):
    println("on the y-axis with a y value of \(y)")
case let (x, y):
    println("somewhere else at (\(x), \(y))")
}
// 输出 "on the x-axis with an x value of 2"

6、where条件判断

例如

let yetAnotherPoint = (1, -1)
switch yetAnotherPoint {
case let (x, y) where x == y:
    println("(\(x), \(y)) is on the line x == y")
case let (x, y) where x == -y:
    println("(\(x), \(y)) is on the line x == -y")
case let (x, y):
    println("(\(x), \(y)) is just some arbitrary point")
}
// 输出 "(1, -1) is on the line x == -y"

7、能够使用return,continue,break,fallthrough 来改变所有控制语句的控制流程。这叫做控制转移。

a)continue语句告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。就好像在说“本次循环迭代我已经执行完了”,但是并不会离开整个循环体。

b)break语句会立刻结束整个控制流的执行。当你想要更早的结束一个switch代码块或者一个循环体时,你都可以使用break语句,if for  for-in  while  do-while 这些都能够用break跳出控制,

c)fallthrough 贯穿   这个和第二点一样。

d)return语句会立刻终止当前代码的执行,并返回。用在方法控制中比较多。


8、给while取一个名字  例如

mainLabel: while a > 0{
	if a ==100 {
		break mainLabel
	}
}


for 循环  for-in循环

for循环用来按照指定的次数多次执行一系列语句。Swift 提供两种for循环形式:
a)for-in用来遍历一个区间(range),序列(sequence),集合(collection),系列(progression)里面所有的元素执行一系列语句。
b)for条件递增(for-condition-increment)语句,用来重复执行一系列语句直到达成特定条件达成,一般通过在每次循环完成后增加计数器的值来实现。


遍历区间:

for index in 1...5 {
    println("\(index) times 5 is \(index * 5)")
}

遍历数组:

let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names {
    println("Hello, \(name)!")
}

遍历字典集合:

let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
for (animalName, legCount) in numberOfLegs {
    println("\(animalName)s have \(legCount) legs")
}

还可以遍历字符:

for character in "Hello" {
    println(character)
}

增量循环:

for var index = 0; index < 3; ++index {
    println("index is \(index)")
}


while循环  do-while循环

while循环,每次在循环开始时计算条件是否符合;
do-while循环,每次在循环结束时计算条件是否符合。

while循环:

while condition {
statements
}
while a > 0{
	println("a value \(a)");
}

do-while循环

do {
statements
} while condition
do{
	println("a value \(a)")
}while a > 0


哇、好强大,这循环用起来应该很爽啊。。。虽然用得最多的就是for循环,呵呵。


2014-07-04 20:10:33 jingjingxujiayou 阅读数 1717
  • C语言从入门到精通+贪吃蛇游戏开发实战

    掌握C语言数据类型,printf,scanf函数,运算符,if语句,switch语句,for,while,do...while循环语句;常用数学函数应用;一维数组,多维数组,查找和常用排序算法,结构体与指针,自定义函数的定义与使用,函数的实参与形参;用户图形界面,大量的上课习题,深入浅出的详细讲解,结合开发贪吃蛇游戏实战项目,能达到精通C语言的目标。

    18549 人正在学习 去看看 赖国荣

Swift学习——使用if和switch来进行条件操作,使用for,while,和do-while来进行循环


//switch支持任意类型的数据以及各种比较操作——不仅仅是整数以及测试相等

//注意如果去掉default程序会报错

let strings = "hello3"
switch strings{
    case "hello1":
    let stringsComment = "say hello1"
    println("stringsComment is \(stringsComment)")
    break
    case "hello2","hello3":
    let stringsComment = "say hello2 and hello3"
    println("stringsComment is \(stringsComment)")
    break
    case let x where x.hasSuffix("hello4"):
    let stringsComment = "Is it a spicy \(x)?"
    println("stringsComment is \(stringsComment)")
    break
    default:
    let stringsComment = "say everything"
    println("stringsComment is \(stringsComment)")
}


简单的while和do-while循环


// while循环
var n = 3
while n < 100{
    n = n*2
}
println("n is \(n)")

//do-while循环
var m = 3
do{
    m = m*2
}while m < 100

println("m is \(m)")

打印结果

stringsComment is say hello2 and hello3

n is 192

m is 192



2017-05-22 16:39:53 SharkToping 阅读数 208
  • C语言从入门到精通+贪吃蛇游戏开发实战

    掌握C语言数据类型,printf,scanf函数,运算符,if语句,switch语句,for,while,do...while循环语句;常用数学函数应用;一维数组,多维数组,查找和常用排序算法,结构体与指针,自定义函数的定义与使用,函数的实参与形参;用户图形界面,大量的上课习题,深入浅出的详细讲解,结合开发贪吃蛇游戏实战项目,能达到精通C语言的目标。

    18549 人正在学习 去看看 赖国荣

print("流程控制")


//if-else

//可以省略()的书写,但是{}不得省略,即使只有一行代码

//条件只能是Bool类型的表达式

if "xxx.zip".hasSuffix("zip") {

    print("是压缩文件")

}


//repeat-while,等价于do-while

var i = 3

repeat {

    //i--

    i -= 1

} while i>0


//for-in

// 1...3 => [1,3]

for i in 1...3 {

    print(i)

}

// 1..<3 => [1,3)

for i in 1..<3 {

    print(i)

}

//遍历字符串

for i in "abcd".characters {

    print(i)

}

//标签使用

for1: for i in 0...5 {

    for2: for j in 0...5 {

        print("(\(i), \(j))")

        #if false

            if i+j == 5 {

                //结束指定的循环

                break for1

            }

        #else

            if i*j == 3{

                //继续指定的循环

                continue for1

            }

        #endif

    }

}


/*switch-case

 1case后可以匹配任何选项

 2、每个case后至少有一条语句,且不需要break

 3、若不能罗列所有可能,则必须有default

 */

var num = 2

switch num {

case 1:

    print("one")

case 2:

    print("two")

default:

    print("other")

}


var point = (0.0, 1.0)

switch point {

//普通匹配

case (0.0, 0.0):

    print("原点")

//忽略匹配

case (_, 0.0):

    print("X轴上")

//where条件

case let(x, y) where x == y:

    print("x == y")

//多项匹配

case (_, 0.0), (0.0, _):

    print("坐标轴上")

    fallthrough //穿越过去

//区间匹配

case (0.0...2.0, _):

    print("0.0 <= X <= 2.0")

    //fallthrough //不能穿越后面的数据绑定

//数据绑定

case let (0, y):

    print("y:\(y)")

default:

    print("其它")

}




没有更多推荐了,返回首页