java小问题~
我想问一下 什么时候用for 什么时候用while
。。。。。。老师说用for的湿乎乎循环次数是一定的。。。那while(n>m)此时m不是也是个循环的次数嘛??怎么不一定啦??
呈上一题~~:
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入1 个正整数 n (1≤n≤6)和n 阶方阵a中的元素,如果a是上三角矩阵, 输出"YES", 否则, 输出"NO"。(上三角矩阵,即主对角线以下的元素都为0, 主对角线为从矩阵的左上角至右下角的连线)
例:括号内是说明
输入:
2 (repeat=2)
3 1 2 3 0 4 5 0 0 6 (n=3)
2 1 0 -8 2 (n=2)
输出:
YES
NO
import java.util.Scanner;
public class Test60013{
public static void main(String []args){
int ri, repeat;
int a[][],i,j,n;
boolean flag ;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
for(ri=1; ri<=repeat; ri++){
n=in.nextInt();
a=new int[n][n];
for (i=0;i<n;i++)
for (j=0;j<n;j++)
a[i][j]=in.nextInt();
/*---------*/
flag=true;
for (i=0;i<n;i++)
for (j=0;j<i;j++)
if(a[i][j]!=0) flag=false;
if(flag) System.out.println("YES");
else System.out.println("NO");
}
}
}
flag=true;
for (i=0;i<n;i++)
for (j=0;j<i;j++)
if(a[i][j]!=0) flag=false;
换成:
i=1;j=0;flag=true;
while(a[i][j]!=0)
{
i++;
j++
flag=false;break;
}
补充:能否帮忙看下我的程序有哪里错误嘛?就是换成那里是我写的~
答案:for语句就是在已知循环次数时就可以用
while在未知次数也可以进行循环运算比如:计算1到100的和可以用for、while都行,但是如果要打印出1到100中连续10个数的和小于130的所有组合咋办?
我不清楚到底有几组数据咋用for。用while就不一样了:while(和<130){和=.........;println(和);}
其他:for中能方便的定义循环次数。while可以看作是含有if的循环语句,它的判断性更高一些。
其实这两个用的时候基本可以互换,只是看哪个更方便一些,两个都可以无限循环,区别不大
上一个:java窗口关闭问题,急死 急死 急死了
下一个:Java初学者关于servlet的问题