流程控制

我们至今写的代码都是一行接着一行,自上而下进行。但是有的时候我想根据程序中当时的环境执行不同的代码,或者有的时候需要重复执行某段代码。这两种方法就是需要用到流程控制中的分支和循环。

分支:有条件的执行代码

循环:重复执行相同的代码

让用户输入一个分数,根据分数的大小,在屏幕上显示是 大于50还是小于等于50
这个时候需要判断分数的大小就要用到比较运算符(布尔运算符)

int score=88;
score>50

布尔运算符

布尔运算符-处理布尔值

条件布尔运算符

布尔赋值运算符

goto语句

在程序中我们可以给代码加上标签,这样就可以使用goto语句直接调到标签的地方去执行

goto语句的语法

goto <labelName>;

实例:

int myInteger = 5;
goto myLabel;
myInteger ++;
myLabel://跳转的标签
Console.WriteLine(myInteger);

分支-if语句

if的语法

if(<test>)
    <code executed if <test> is true>

先执行<test>,如果结果是true就执行

案例:

bool var1 = true;
if(var1)
    Console.WriteLine(var1);

if else语法

if(<test>)
    <code executed if <test> is true>
else
    <code executed if <test> is false>

如果if和else要执行的代码有多行,可以加上{}组成一个块

if(<test>){
    <code executed if <test> is true>
}else{
    <code executed if <test> is false>
}

三元运算符

语法

<test> ? <resultIfTrue> : <resultIfFalse>

示例

string resStr = (myInteger<10) ? "Less than 10":"Greater than or equal to 10"

switch语句

switch语句类似于if语句,switch可以用来将测试变量跟多个值
进行比较。switch的语法结构如下:

switch (<testvar>){
    case <comparisonVal1>:
    <code to execute if <testvar> == <comparisionVal1>>
    break;
    case <comparisonVal2>:
    <code to execute if <testvar> == <comparisionVal2>>;
    break;
    ...
    case <comparisionN>:
    <code to execute if <testvar>==<comparisionValN>>;
    break;
    default:
    <code to execute if <testvar>!=<comparisionVals>>
    break;
}

testvar这里不管直接放一个字面值还是变量,它的类型是数值类型跟char类型

do循环

语法结构

do{
    <code to be looped>;
}while(<test>);
//<test>返回的是一个bool值(循环的条件判断)

注意,do while的while后有分号;

While循环

语法结构

while(<test>){
    <code to be looped>
}

有关系式

1*1+2*2+3*3+...+k*k<2000

编一个程序,求出满足此关系式的k的最大值

static int maxNumless2000() {
    int i = 1;
    int sum = 0;
    while(sum + i * i < 2000) {
        sum = sum + i * i;
        i++;
    }
    return sum;
}

for循环

语法结构

for(<initialization;<condition>;<operation>>){
    <code to loop>
}

initialization是初始化,这里可以定义一个变量,也可以给变量赋值
condition是判断是否执行循环的条件
operation每次执行完循环都会执行operation代码

使用break立即跳出循环

使用continue,只会终止当次循环,继续运行下次循环

循环的中断 goto 可以直接跳到某一个位置

循环的中断 return 跳出循环(跳出函数)

results matching ""

    No results matching ""