黑马程序员技术交流社区

标题: 关于For,这样做为什么不行? [打印本页]

作者: houyudong    时间: 2014-4-30 10:37
标题: 关于For,这样做为什么不行?
public class ForForTest
{
        public static void main(String[] arge)
        {
                char[] x = new x[3];
                x[0] = a;
                x[1] = b;
                x[2] = c;
               
               
                for(x[0]; x<=x[2]; x[0]++)
                {
                        for(x[0]; x<=x[2]; x[0]++)
                        {
                                for(x[0]; x<=x[2]; x[0]++)
                                {
                                       
                                }
                        }
                }
作者: GGdog    时间: 2014-4-30 10:57
char[] x = new x[3]; 是你创建了一个数组x,x数组中有三个元素,数组中角标为0.1.2的分别是a,b,c
那么你的for函数  for(x[0]; x<=x[2]; x[0]++)中,就是说for{a;x<=c;a++},无论你for中的X是数组还是一个元素,好像这样理解都不通啊,可能是我基础不好,真心没看懂你这个for函数的意义,不好意思
作者: 雪碧拌米饭    时间: 2014-4-30 12:30
本帖最后由 雪碧拌米饭 于 2014-4-30 12:35 编辑

for循环是开界的。它的一般形式为: for(; <条件表达式>; ) 语句; 初始化总是一个赋值语句, 它用来给循环控制变量赋初值; 条件表达式是一个关系表达式, 它决定什么时候退出循环; 增量定义循环控制变量每循环一次后 按什么方式变化。这三个部分之间用";"分开。 例如: for(i=1; i<10时, 结束循环。
for语句比while语句和do-while都要灵活,是一种功能更大、更常用的循环语句,它的一般语法格式为:
for(表达式1;表达式2;表达式3)
{
循环体
}
其中,表示式可以省略,但是分号不可省略。

而你定义的for循环实际上是for(a ; x<=c ; a++),这不是for循环的定义格式,可改写成for(i=0;i<=2;i++)


作者: 362688114    时间: 2014-4-30 17:49
  1. char[] x = new char[3]; //char[] x= new char[3]; 数组定义的格式不正确
  2.          x[0] = 'a'; //应该赋值为'a';
  3.          x[1] = 'b'; //应该赋值为'b';
  4.          x[2] = 'c'; //应该赋值为'c'; 因为数组中的每个元素都是字符类型的。
  5.          
  6.          
  7.          for(x[0]; x<=x[2]; x[0]++) //x<=x[2] 左边的x是个数组对象,而右边是个数组元素。不能进行比较。
  8.          {
  9.                  for(x[0]; x<=x[2]; x[0]++)
  10.                  {
  11.                          for(x[0]; x<=x[2]; x[0]++)
  12.                          {
  13.                                  
  14.                          }
  15.                  }
  16.          }
复制代码

作者: 王春蕾    时间: 2014-5-1 18:50
不行吧,x[0]是数组中的一个元素,不是一个语句,也不能作为for循环条件的其实条件
作者: gma103    时间: 2014-5-1 19:39
for循环的语句格式
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
  执行语句;
}

如下是一个数组一遍历
int[] arr={1,2,3};
   for(int i=0;i<arr.length;i++)
   {
     System.out.println(arr[i]);
   }
作者: 爱翚    时间: 2014-5-1 19:58
public class ForForTest {
        public static void main(String[] args) {
                //new操作的动作是根据类创建一个对象,而x是变量不是类或基本数据类型
                //char[] x = new x[3];
                char[] x = new char[3];
               
                //a、b、c这样写什么也不是,java编译器无法识别
                //由于x数组被声明为字符型,所以需要向该数组中赋值字符型的数值
                /*x[0] = a;
                x[1] = b;
                x[2] = c;*/
                x[0] = 'a';
                x[1] = 'b';
                x[2] = 'c';
               
                /*
                 * 1、传统for循环中是依赖于变量进行循环控制的,而此处的x[0]是一个常量,即‘a’
                 * 说白了x[0]就是‘a’,常量是不可以进行自增操作的。
                 * 2、for(x[0]; x<=x[2]; x[0]++){ 这里的x是对象,其无法同一个具体
                 * 的数值进行简单的比较
                 * 3、嵌套for循环中的变量也不能重名
                 */
                /*
                for(x[0]; x<=x[2]; x[0]++){
                    for(x[0]; x<=x[2]; x[0]++){
                        for(x[0]; x<=x[2]; x[0]++)
                        {
                    }
                }*/
               
                //修改为以下代码
                for(int x1=0; x1<=x[2]; x1++){
                    for(int y=0; y<=x[2]; y++){
                        for(int z=0; z<=x[2]; z++){
                        }
                    }
                }
                //也可以修改为以下代码,即增强for循环
                for(char x1 : x){
                    for(char y : x){
                        for(char z : x){
                        }
                    }
                }
        }
}




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