While loop in ASP.NET MVC Razor engine

By Mar 14, 2016

Description:

While loop in MVC Razor

Preferencesoft

Definition

A while loop to repeat the execution of a sequence of statements as long as a certain Boolean condition is true. The Boolean condition to break out of the loop when the boolean condition becomes false.

@{
    int i = 0;
    while (i < 15)
    {
        i++;
        <p>@i</p>
    }
}

Examples of use

Display integers in ascending order as the sum of the digits is strictly lower than 25.

@{

    int n = 0;
    while (n % 10 + (n / 10) % 10 + (n / 100) % 10 < 25)
    {
        @n;
        @Html.Raw("; ");
        n++;
    }
}

The result:

0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; 125; 126; 127; 128; 129; 130; 131; 132; 133; 134; 135; 136; 137; 138; 139; 140; 141; 142; 143; 144; 145; 146; 147; 148; 149; 150; 151; 152; 153; 154; 155; 156; 157; 158; 159; 160; 161; 162; 163; 164; 165; 166; 167; 168; 169; 170; 171; 172; 173; 174; 175; 176; 177; 178; 179; 180; 181; 182; 183; 184; 185; 186; 187; 188; 189; 190; 191; 192; 193; 194; 195; 196; 197; 198; 199; 200; 201; 202; 203; 204; 205; 206; 207; 208; 209; 210; 211; 212; 213; 214; 215; 216; 217; 218; 219; 220; 221; 222; 223; 224; 225; 226; 227; 228; 229; 230; 231; 232; 233; 234; 235; 236; 237; 238; 239; 240; 241; 242; 243; 244; 245; 246; 247; 248; 249; 250; 251; 252; 253; 254; 255; 256; 257; 258; 259; 260; 261; 262; 263; 264; 265; 266; 267; 268; 269; 270; 271; 272; 273; 274; 275; 276; 277; 278; 279; 280; 281; 282; 283; 284; 285; 286; 287; 288; 289; 290; 291; 292; 293; 294; 295; 296; 297; 298; 299; 300; 301; 302; 303; 304; 305; 306; 307; 308; 309; 310; 311; 312; 313; 314; 315; 316; 317; 318; 319; 320; 321; 322; 323; 324; 325; 326; 327; 328; 329; 330; 331; 332; 333; 334; 335; 336; 337; 338; 339; 340; 341; 342; 343; 344; 345; 346; 347; 348; 349; 350; 351; 352; 353; 354; 355; 356; 357; 358; 359; 360; 361; 362; 363; 364; 365; 366; 367; 368; 369; 370; 371; 372; 373; 374; 375; 376; 377; 378; 379; 380; 381; 382; 383; 384; 385; 386; 387; 388; 389; 390; 391; 392; 393; 394; 395; 396; 397; 398; 399; 400; 401; 402; 403; 404; 405; 406; 407; 408; 409; 410; 411; 412; 413; 414; 415; 416; 417; 418; 419; 420; 421; 422; 423; 424; 425; 426; 427; 428; 429; 430; 431; 432; 433; 434; 435; 436; 437; 438; 439; 440; 441; 442; 443; 444; 445; 446; 447; 448; 449; 450; 451; 452; 453; 454; 455; 456; 457; 458; 459; 460; 461; 462; 463; 464; 465; 466; 467; 468; 469; 470; 471; 472; 473; 474; 475; 476; 477; 478; 479; 480; 481; 482; 483; 484; 485; 486; 487; 488; 489; 490; 491; 492; 493; 494; 495; 496; 497; 498; 499; 500; 501; 502; 503; 504; 505; 506; 507; 508; 509; 510; 511; 512; 513; 514; 515; 516; 517; 518; 519; 520; 521; 522; 523; 524; 525; 526; 527; 528; 529; 530; 531; 532; 533; 534; 535; 536; 537; 538; 539; 540; 541; 542; 543; 544; 545; 546; 547; 548; 549; 550; 551; 552; 553; 554; 555; 556; 557; 558; 559; 560; 561; 562; 563; 564; 565; 566; 567; 568; 569; 570; 571; 572; 573; 574; 575; 576; 577; 578; 579; 580; 581; 582; 583; 584; 585; 586; 587; 588; 589; 590; 591; 592; 593; 594; 595; 596; 597; 598; 599; 600; 601; 602; 603; 604; 605; 606; 607; 608; 609; 610; 611; 612; 613; 614; 615; 616; 617; 618; 619; 620; 621; 622; 623; 624; 625; 626; 627; 628; 629; 630; 631; 632; 633; 634; 635; 636; 637; 638; 639; 640; 641; 642; 643; 644; 645; 646; 647; 648; 649; 650; 651; 652; 653; 654; 655; 656; 657; 658; 659; 660; 661; 662; 663; 664; 665; 666; 667; 668; 669; 670; 671; 672; 673; 674; 675; 676; 677; 678; 679; 680; 681; 682; 683; 684; 685; 686; 687; 688; 689; 690; 691; 692; 693; 694; 695; 696; 697; 698; 699; 700; 701; 702; 703; 704; 705; 706; 707; 708; 709; 710; 711; 712; 713; 714; 715; 716; 717; 718; 719; 720; 721; 722; 723; 724; 725; 726; 727; 728; 729; 730; 731; 732; 733; 734; 735; 736; 737; 738; 739; 740; 741; 742; 743; 744; 745; 746; 747; 748; 749; 750; 751; 752; 753; 754; 755; 756; 757; 758; 759; 760; 761; 762; 763; 764; 765; 766; 767; 768; 769; 770; 771; 772; 773; 774; 775; 776; 777; 778; 779; 780; 781; 782; 783; 784; 785; 786; 787; 788; 789; 790; 791; 792; 793; 794; 795; 796; 797; 798;

From a list of guests, show guests from the beginning until the first which was named John.

@{
    string[] guests = new string[] { "Paul Turner", "Donald Verner", "John Roberts", "Alison Kris", "Antonio Vivaldi" };
    int guest_number = guests.Length;
    int g = 0;
    bool contains = false;
}
<p>
    <ul>
        @while (g < guest_number && !contains)
        {
            contains = guests[g].Contains("John");
            @:<li>@guests[g]</li>
            g++;
        }
    </ul>
</p>

Output:

  • Paul Turner
  • Donald Verner
  • John Roberts

View the result of the throw of a dice as long as the sum of all results from the first launch remains below 20.

@helper Index(int i)
{
    string[] term = new string[] { "1st", "2nd", "3rd", "{0}th" };
    if (i <= 3)
    {
        @term[i - 1];
    }
    else
    {
        @String.Format(term[3], i.ToString());
    }
}

@{
    int num = 1;
    int res = 0;
    long sum = 0;
    Random r = new Random();
    res = r.Next(6);
    sum = res;
    @:<ul>
        @:<li>
            @Index(num) roll -> @res
            @Html.Raw(" (sum = " + sum.ToString() + ")");
        @:</li>
    res = r.Next(6);
    sum += res;
    num++;
    while (sum <= 20)
    {
        @:<li>
            @Index(num) roll -> @res
            @Html.Raw(" (sum=" + sum.ToString() + ")");
        @:</li>
        res = r.Next(6);
        sum += res;
        num++;
    }
    @:</ul>
}
  • 1st roll -> 5 (sum = 5)
  • 2nd roll -> 2 (sum=7)
  • 3rd roll -> 1 (sum=8)
  • 4th roll -> 4 (sum=12)
  • 5th roll -> 4 (sum=16)

100m sprint, it wishes to make a preselection to keep only the riders who have a score lower 11s.

@{
    string[] sprinters = new string[] { "Ben Johnson", "John Timer", "Oliver Hardy", "Jaimie Sommers", "Julia Gonzales" };
    double[] score = new double[] { 9.83, 12, 20, 5, 10 };
    int l = sprinters.Length;
    Array.Sort(score, sprinters);
    int p = 0;
    bool not_ended = true;

    @Html.Raw("<ol>");
    while (p < l && not_ended)
    {
        not_ended = (score[p] <= 11);
        if (not_ended)
        {
            @Html.Raw("<li>" + sprinters[p] + string.Format(" (score: {0}s)", score[p]) + "</li>");
        }
        p++;
    }
    @Html.Raw("</ol>");
}
  1. Jaimie Sommers (score: 5s)
  2. Ben Johnson (score: 9,83s)
  3. Julia Gonzales (score: 10s)

From a series of numbers, we want all the sequences corresponding to the steps of the bubble sort. Show the coloring permutations in the two swapped numbers.

@{
    int[] tab = new int[] { 0, 5, 6, 10, -5, 45, -100, 2 };
    bool not_sorted = true;
    int m = tab.Length;
    int len = m;
    @:<ul>
    while (not_sorted)
    {
        not_sorted = false;
        m--;
        for (int i = 0; i < m; i++)
        {
            if (tab[i] > tab[i + 1])
            {
                int x = tab[i];
                tab[i] = tab[i + 1];
                tab[i + 1] = x;
                not_sorted = true;
                @:<li>
                int j = 0;
                while (j < len)
                {
                    if (j == i)
                    {
                        @:<span style="background-color:blue;color:aliceblue"> @tab[i] @tab[i + 1] </span>
                        j++;
                    }
                    else
                    {
                        @:<span style="background-color:yellow;color:mediumvioletred"> @tab[j] </span>
                    }
                    j++;
                }
                @:</li>
            }
        }
    }
    @:</ul>
}
  • 0 5 6 -5 10 45 -100 2
  • 0 5 6 -5 10 -100 45 2
  • 0 5 6 -5 10 -100 2 45
  • 0 5 -5 6 10 -100 2 45
  • 0 5 -5 6 -100 10 2 45
  • 0 5 -5 6 -100 2 10 45
  • 0 -5 5 6 -100 2 10 45
  • 0 -5 5 -100 6 2 10 45
  • 0 -5 5 -100 2 6 10 45
  • -5 0 5 -100 2 6 10 45
  • -5 0 -100 5 2 6 10 45
  • -5 0 -100 2 5 6 10 45
  • -5 -100 0 2 5 6 10 45
  • -100 -5 0 2 5 6 10 45

ASP.NET

Categories

Share

Follow


KodFor Privacy Policy