黑马程序员技术交流社区

标题: 检测到未访问到的代码i [打印本页]

作者: 余尚勇    时间: 2013-6-18 22:45
标题: 检测到未访问到的代码i
本帖最后由 余尚勇 于 2013-6-20 22:36 编辑

为什么检测到未访问的i

namespace 求整形数组的和
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = { 2, 3, 5, 6, 8 };
            int sum = 0;
            for (int i = 0; i < arr.Length;i++ )
            {
                sum = sum + arr[arr.Length-1];
                Console.WriteLine(sum);
                break;
            }
            Console.ReadKey()
     }
    }
}

QQ图片20130618224255.jpg (47.39 KB, 下载次数: 0)

QQ图片20130618224255.jpg

作者: 彭康    时间: 2013-6-18 23:00
namespace 求整形数组的和
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = { 2, 3, 5, 6, 8 };
            int sum = 0;
            for (int i = 0; i < arr.Length;i++ )
            {
                sum = sum + arr[arr.Length-1];//持续加 sum 结果为 0+6 =6 只循环一次 而且只加arr[4]=6
                Console.WriteLine(sum);
                break;//循环第一次的时候就跳出了循环,编译器检测到了 所以告诉你循环的代码无法访问,没有意义
            }
            Console.ReadKey()
     }
    }
}
作者: 吴承烨    时间: 2013-6-18 23:11
  1. sing System.Collections.Generic;
  2. using System.Linq;
  3. using System.Text;

  4. namespace ConsoleApplication2
  5. {

  6.     namespace 求整形数组的和
  7.     {
  8.         class Program
  9.         {
  10.             static void Main(string[] args)
  11.             {
  12.                 int[] arr = { 2, 3, 5, 6, 8 };
  13.                 int sum = 0;
  14.                 for (int i = 0; i < arr.Length; i++)
  15.                 {
  16.                     sum = sum + arr;
  17.                 }
  18.                 Console.WriteLine("{0}",sum);
  19.                 Console.ReadKey();
  20.             }
  21.         }
  22.    
  23. </p>
复制代码

作者: 彭康    时间: 2013-6-18 23:13
本帖最后由 彭康 于 2013-6-18 23:14 编辑
吴承烨 发表于 2013-6-18 23:11

你的for 循环里的 arr 没加索引器 将报错

改成arr【i】
作者: 吴承烨    时间: 2013-6-18 23:28
哦,马大哈了
作者: 万大述    时间: 2013-6-20 18:17
for(; ;){循环体}循环的的执行过程是先执行第一个分号前面的语句,然后执行第二个分号前面的判断,如果满足,则执行循环体中语句,再执行第二个分号后面的语句。而你的循环体的最好一句是break;即跳出循环,执行该for语句的下一句,所以第二个分号后面的i++是没法执行的,也即无法访问,循环也没法转起来。
作者: 余尚勇    时间: 2013-6-23 02:06
彭康 发表于 2013-6-18 23:00
namespace 求整形数组的和
{
    class Program

谢谢帮助
作者: 余尚勇    时间: 2013-6-23 02:06
万大述 发表于 2013-6-20 18:17
for(; ;){循环体}循环的的执行过程是先执行第一个分号前面的语句,然后执行第二个分号前面的判断,如果满 ...

谢谢了。
作者: 余尚勇    时间: 2013-6-23 02:07
万大述 发表于 2013-6-20 18:17
for(; ;){循环体}循环的的执行过程是先执行第一个分号前面的语句,然后执行第二个分号前面的判断,如果满 ...

非常感谢
作者: 余尚勇    时间: 2013-6-23 02:09
吴承烨 发表于 2013-6-18 23:11

非常感谢,提示的我看明白了
作者: 余尚勇    时间: 2013-6-23 02:10
彭康 发表于 2013-6-18 23:13
你的for 循环里的 arr 没加索引器 将报错

改成arr【i】

谢谢了。
作者: 余尚勇    时间: 2013-6-23 02:11
吴承烨 发表于 2013-6-18 23:28
哦,马大哈了

呵呵呵,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2