A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余尚勇 中级黑马   /  2013-6-18 22:45  /  1892 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 余尚勇 于 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

11 个回复

倒序浏览
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()
     }
    }
}
回复 使用道具 举报
  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:14 编辑

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

改成arr【i】
回复 使用道具 举报
哦,马大哈了
回复 使用道具 举报
for(; ;){循环体}循环的的执行过程是先执行第一个分号前面的语句,然后执行第二个分号前面的判断,如果满足,则执行循环体中语句,再执行第二个分号后面的语句。而你的循环体的最好一句是break;即跳出循环,执行该for语句的下一句,所以第二个分号后面的i++是没法执行的,也即无法访问,循环也没法转起来。
回复 使用道具 举报
彭康 发表于 2013-6-18 23:00
namespace 求整形数组的和
{
    class Program

谢谢帮助
回复 使用道具 举报
万大述 发表于 2013-6-20 18:17
for(; ;){循环体}循环的的执行过程是先执行第一个分号前面的语句,然后执行第二个分号前面的判断,如果满 ...

谢谢了。
回复 使用道具 举报
万大述 发表于 2013-6-20 18:17
for(; ;){循环体}循环的的执行过程是先执行第一个分号前面的语句,然后执行第二个分号前面的判断,如果满 ...

非常感谢
回复 使用道具 举报

非常感谢,提示的我看明白了
回复 使用道具 举报
彭康 发表于 2013-6-18 23:13
你的for 循环里的 arr 没加索引器 将报错

改成arr【i】

谢谢了。
回复 使用道具 举报

呵呵呵,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马