- 1.变量不可以被重复声明
- 2.自加自减(Python习惯)
- 3.连用判断符(Python习惯)
- 4.&&和&,||和|
- 5.if循环条件里面的变量
- 5.1 当在循环外定义了一个变量,然后放在循环条件里面做++,最后循环外输出结果会因为循环条件里面的++而改变
- 5.2 当在循环内定义变量,那么此变量只在循环体里面有效,不可以在循环外用。
java public class test1 { public static void main(String[] args) { int[] nums = {2, 4, 6, 7, 8, 9}; Arrays.sort(nums); int sum = 0; for (int i = nums.length - 2; 0<= i && i< nums.length - 1; i-= 2) { int b=2; int b=3; // 此时会报错,b has been declared sum+=nums[i]; // 如果上面没有声明int sum=0会报错 // 相当于sum=sum+nums[i]没有初始化怎么行?那我这样声明int sum+=nums[i]也会报错 // 相当于int sum=sum+nums[i],左边都没有初始化,当然报错。那我这样声明 int sum=int sum+nums[i] 也是没有初始化 // 反正记得 局部变量 初始化就不会报错 } System.out.println(sum); } }
习惯了Python里面i+=2这种写法,其实Java里面也是可以的。但是一种情况要注意,局部变量(此时i)应该提前初始化,全局变量(成员变量)。
局部变量不初始化一定会报错!!!
注意a++和++a的区别,前者是先 *** 作后赋值
0 4.&&和&,||和|
一般习惯用&&和II,作用是一模一样的,只不过 *** 作机制不一样。
0>2&&(balalaad),当前面是false不管后面怎么样也不会执行,因为被短路了
java public static void main(String[] args) { int i = 23; int j = 21; if ((i == j) && (100 / 0 == 0)){ //虽然IDEA会黄色警告,但是不会报错,可以执行得到21.如果换成&编译不会报错,但是执行后会报错,"/ by zero" System.out.println(j); } System.out.println(j);
||同理,前面true后面就不执行了
今天做了一个力扣题,出现了一些变量的问题
class Solution {
public int[][] generateMatrix(int n) {
// 参考https://leetcode.cn/problems/spiral-matrix-ii/solution/spiral-matrix-ii-mo-ni-fa-she-ding-bian-jie-qing-x/
int l=0 ,r=n-1,t=0,b=n-1;
int[][] mat=new int[n][n];
if(n==0) return mat;
int target=n*n;
int count=1;
while(count<=target){
// for(;l<=r;l++) mat[t][l]=count++; //从左到右
// t++;
// for(;t<=b;t++) mat[l][t]=count++; //从上到下
// r--;
// for(;r>=l;r--) mat[t][r]=count++; //从左到右
// b--;
// for(;b>=t;l++) mat[t][l]=count++; //从左到右
// l++;
// 绝了,别把几个边界放循环里面啊,因为你在外面定义了的话,即使放循环里面还是会发生值的变化
// 在循环条件里面定义的变量,循环结束之后会失效,需要重新定义
for(int i=l;i<=r;i++) mat[t][i]=count++; //从左到右
t++;
for(int i=t;i<=b;i++) mat[i][r]=count++; //从上到下
r--;
for(int i=r;i>=l;i--) mat[b][i]=count++; //从右到左
b--;
for(int i=b;i>=t;i--) mat[i][l]=count++; //从下到上
l++;
}
return mat;
}
}
5.1 当在循环外定义了一个变量,然后放在循环条件里面做++,最后循环外输出结果会因为循环条件里面的++而改变
public class test1 {
public static void main(String[] args) {
int l=0;
int r=3;
for(;l<=r;l++) ;
// 输出结果4
System.out.println(l);
}
}
5.2 当在循环内定义变量,那么此变量只在循环体里面有效,不可以在循环外用。
public class test1 {
public static void main(String[] args) {
int r=3;
for(int l=0;l<=r;l++) ;
// 报错:java: 找不到符号
System.out.println(l);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)