首页 > 技术文章 > if---(switch-case)语句初步学习总结

jerryho 2014-03-10 19:06 原文

 

  Daily sentence:  Happiness is about having each tiny wish come true. 幸福就是达成每一个Tiny Wish.

 

Ctrl+E D C#自动排版.

强制转换:

如果表达式中含有一个double类型的的操作数时候,整个表达式都提升为double类型.

int a=(int)3.14; 将3.14强制转换为int类型.并将值赋给a.

 

int 变量Convert.ToInt32(Console.ReadLine(输入的字符串)); 将输入的字符串转换为int类型.

 

Convert转换不再仅是内存级别的转换,而是考虑数据意义的转换.Convert是一个加工转换的过程.
(要明白为什么转换?!)
Convert.ToInt32();
Convert.ToString(); (一切类型都可以转换成string类型)

int a = 10;
Console.WriteLine(a.ToString()); 将int转换为string类型.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 试算
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 11111;          
            Console.WriteLine(a.ToString());//将int类型的a的值11111转换为string类型"11111".
            int age = 23;
            Console.WriteLine(age.ToString());//将int类型的值转换为string类型.
            Console.WriteLine("请输入number的值?");
            int number = Convert.ToInt32(Console.ReadLine());//将输入的字符串转换为int类型.
            Console.WriteLine("a的值是:{0}  number的值是:{1}  你的年龄是:{2}",a,number,age);

            Console.ReadKey();
        }
    }
}
View Code

 

逻辑与逻辑或的短路

逻辑与的短路:当第一个表达式不成立时,就不再执行后面的表达式.

int a=10;

int b=15;

bool result= ++a>15 &&++b>10;

Console.WriteLine("a的值为:{0} b的值为:{1}",a,b );

当执行逻辑与(&&)时第一个bool表达式++a>15不成立时,后面的++b>10就不执行直接跳过,最后a的值为11,b的值仍为15.

只有当++a>15成立时,才会运行++b>15.最后a和b的值都加1.即a=11,b=16.

 

逻辑或的短路:当第一个表达式成立时,就不再运行后面的表达式了.(||只要有一个成立即可)

int a=10;

int b=15;

bool result= ++a<15 ||++b>10;

Console.WriteLine("a的值为:{0} b的值为:{1}",a,b );

因为++a<15成立.后面的++b>10就不再执行,最后a的值为11,b的值仍为15.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 逻辑与或的短路
{
    class Program
    {
        static void Main(string[] args)
        {
            //逻辑或的短路
            //int a = 10;
            //int b = 15;
            //bool result = ++a < 15 || ++b > 10;

            //Console.WriteLine("a的值为:{0} b的值为:{1}", a, b);


            //逻辑与的短路
            int a = 10;
            int b = 15;
            bool result = ++a > 15 && ++b > 10;

            Console.WriteLine("a的值为:{0} b的值为:{1}", a, b);
            
            Console.ReadKey();

        }
    }
}
View Code

 

if结构(if/if-else/if-else if)

多练习熟练如何才能让程序更加优化,在使用if语句时上面三者的选择问题.

if结构(else永远和最近的if配对)


if(bool表达式) ----必须是bool表达式
{
语句1
}


if-else结构
if(条件)
{语句1;}
else
{语句2;}

if-else if结构(只有当if中的不成立才会进入else if中进行判断)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 密码提示问题
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入你的密码?");
            string secret = Console.ReadLine();
            if (secret == "888888")
            {
                Console.WriteLine("你输入的密码正确!");
            }
            else 
            {
                Console.WriteLine("请重新输入密码?");
                secret = Console.ReadLine();
                if (secret == "888888")
                {
                   
                    Console.WriteLine("密码正确");
                }
                else 
                {
                    Console.WriteLine("密码错误");
                }
            }
            Console.ReadKey();
        }
    }
}
View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace if_else_if结构
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入一个数字?");
            int number = Convert.ToInt32(Console.ReadLine());
            if (number >= 90)
            {
                Console.WriteLine("A");
            }
            else if (number >= 80)
            {
                Console.WriteLine("B");
            }
            else if (number >= 70)
            {
                Console.WriteLine("C");
            }
            else if (number >= 60)
            {
                Console.WriteLine("D");
            }
            else
            {
                Console.WriteLine("E");
            }
            Console.ReadKey();
        }
    }
}
View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 作业
{
    class Program
    {
        static void Main(string[] args)
        {
            //作业1
            
            Console.WriteLine("请输入你的用户名?");
            string useName = Console.ReadLine();
            Console.WriteLine("请输入你的密码?");
            string useSecret = Console.ReadLine();                   

                if (useName == "admin" && useSecret == "mypass")
                    {
                        Console.WriteLine("登录成功!");
                    }                
            

            Console.ReadKey();
        }
    }
}
View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace if结构
{
    class Program
    {
        static void Main(string[] args)
        {
            
           Console.WriteLine("请输入你的年龄!");
           int age=Convert.ToInt32( Console.ReadLine());
           if (age >=18)
               Console.WriteLine("你已经成年.");
           else
               Console.WriteLine("你未成年.");
            Console.ReadKey();                                            
            

        }
    }
}
View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace if_else_if_作业
{
    class Program
    {
        static void Main(string[] args)
        {
            //作业1
            //Console.WriteLine("请输入你的密码?");
            //string secret = Console.ReadLine();
            //if (secret == "888888")
            //{
            //    Console.WriteLine("你输入的密码正确!");
            //}
            //else
            //{
            //    Console.WriteLine("密码错误,请重新输入!");
            //}

            //secret = Console.ReadLine();
            //if (secret == "888888")
            //{
            //    Console.WriteLine("你输入的密码正确!");
            //}
            //else
            //{
            //    Console.WriteLine("密码错误,请重新输入!");
            //}

            //作业1(优化方法---可以将if-else直接嵌套进else中)
            //Console.WriteLine("请输入你的密码?");
            //string secret = Console.ReadLine();
            //if (secret == "888888")
            //{
            //    Console.WriteLine("你输入的密码正确!");
            //}
            //else
            //{
            //    Console.WriteLine("请重新输入密码?");
            //    secret = Console.ReadLine();
            //    if (secret == "888888")
            //    {

            //        Console.WriteLine("密码正确");
            //    }
            //    else
            //    {
            //        Console.WriteLine("密码错误");
            //    }
            //}
            


            ////作业2
            //Console.WriteLine("请输入你的用户名?");
            //string useName = Console.ReadLine();
            //Console.WriteLine("请输入你的密码?");
            //string secret = Console.ReadLine();
            //if (useName == "admin" && secret == "888888")
            //{
            //    Console.WriteLine("你输入的用户名和密码正确!");
            //}
            //else if (useName != "admin" /*|| secret == "888888"*/)
            //{
            //    Console.WriteLine("你输入的用户名不存在!");
            //}
            //else//(useName == "admin" || secret != "888888") 除去上面两种可能剩下的就是括号中的这种了.
            //{
            //    Console.WriteLine("你输入的密码不正确!");
            //}

            //作业3
            Console.WriteLine("请输入你的年龄?");
            int age = Convert.ToInt32(Console.ReadLine());
            if (age >= 18)
            {
                Console.WriteLine("可以观看.");
            }
            //if (age < 10)
            //{
            //    Console.WriteLine("不可以观看.");
            //}
            else if (age>=10)
            {
                Console.WriteLine("是否决定观看?");
                Console.WriteLine("请输入yes或者no?");
                string input = Console.ReadLine();                
                if (input == "yes")
                {
                    Console.WriteLine("请查看.");
                }
                     
                else
                {
                    Console.WriteLine("退出,你放弃查看.");
                }
                
            }
            else
            {
                Console.WriteLine("不可以观看!");
            }
            Console.ReadKey();
        }
    }
}
View Code

 

****(还需深入理解并会应用)

控制一些语句的是否输出:应用bool表达式加上if结构完成.

bool 变量=false;

if(变量==false)

{

要控制是否输出的程序.

}

****

switch-case语句

可以解决一些if语句计较繁琐的代码.

结构为:

switch(表达式)

  case:"值1":

    语句块1;

  break;

......

  case:"值n":

    语句块n;

  break;

  default:语句块;

  break;

上面的语法中:break是每句都需要写的.表达式中的值与case中的值一个一个比较,直到找到相等的为止,如果没有就将跳入default语句中,执行default语句中的程序,

如果没有default语句,程序就直接跳出.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace switch_case
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入一个字母(A-E)?");
            string input = Console.ReadLine();
            int salary = 5000;
            bool sign = false;
            switch(input)
            {
                case "A":
                    salary += 500;
                    break;
                case"B":
                    salary += 200;
                    break;
                case"C":
                    break;
                case"D":
                    salary -= 200;
                    break;
                case"E":
                    salary -= 500;
                    break;  

                default:
                    Console.WriteLine("你输入的英文字母有错误!");
                    sign = true;
                    break;
                    
            }
            if (sign == false)
            {
                Console.WriteLine("你的工资是" + salary);
            }

                Console.ReadKey();
            
            
        }
    }
}
View Code

 

Long way to go......

推荐阅读