2d数组

时间:2016-04-05 03:55:51

标签: java arrays

我想知道2D数组中这些循环之间的区别是什么:

for (int r = row - 1, c = column - 1; r >= 0 && c >= 0; r--, c--) {
    ...
}


for(int r=row-1;r>=0;r--){    
    for(int c=column-1;c>=0;c--){
        ...
    }
}

3 个答案:

答案 0 :(得分:3)

for (int r = row - 1, c = column - 1; r >= 0 && c >= 0; r--, c--)

第一个示例是一个循环,每个循环递减rc,这意味着索引rc将从{{1}开始绘制对角线}}。 enter image description here

array[row-1][column-1]

第二个示例为每个行索引调用一个循环,因此它将访问 all 索引for(int r=row-1;r>=0;r--){ for(int c=column-1;c>=0;c--){
enter image description here

答案 1 :(得分:3)

我假设您要求单个外部循环和嵌套循环之间的区别。不同之处在于单个循环将遍历2D数组的对角线和嵌套循环,迭代遍历数组的每个索引。例如,如果有6行和4列,那么:

for (int r = row - 1, c = column - 1; r >= 0 && c >= 0; r--, c--) { 
     System.out.println(r + " " + c);
}

将产生:

5 3
4 2
3 1
2 0

而嵌套循环

for(int r=row-1; r>=0; r--) {
    for(int c=column-1; c>=0; c--) {
        System.out.println(r + " " + c);
    }
}

会产生

5 3
5 2
5 1
5 0
4 3
4 2
4 1
4 0
3 3
3 2
3 1
3 0
2 3
2 2
2 1
2 0
1 3
1 2
1 1
1 0
0 3
0 2
0 1
0 0

答案 2 :(得分:1)

$host = "host"; $user = "user"; $password = "pass"; $database = "db"; $port = xxxx; $table = "table"; // Create connection $conn = mysqli_connect($host, $user, $password, $database, $port); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connection Successful"; mysqli_select_db($database) or die("Could not select database because".mysqli_error()); // check if the username is taken $check = "select email from $table where email = '".$_POST['email']."';"; $qry = mysqli_query($check) or die ("Could not match data because ".mysqli_error()); $num_rows = mysqli_num_rows($qry); if ($num_rows != 0) { echo "Sorry, there the username $username is already taken."; } 次的第一次迭代,其中nnrow中的最小值。第二次迭代column次,其中mm * row。那是

column

Math.min(row, column)

分别