循环结构
while循环/do..while循环
- while循环
while循环主体只有一个语句时,可以省略大括号。在while循环语句中只有一个判断条件,它可以是任何表达式。当判断条件的值为真,循环就会执行下一次,再重复测试判断条件,执行循环主体,直到判断条件的值为假,才会跳离while循环。
- while循环
public class WhileDemo{
public static void main(String[] args){
int x = 1;
int sum = 0;
while(x<=10){
sum += x;
x++;
}
System.out.println("1->10累计的结果为"+sum);
}
}
- do..while循环
do..while循环也是用于未知循环执行次数的情况,而while循环及do..while循环最大的不同就是进入while循环钱,while语句会先判断条件的真假,再决定是否执行循环主体,而do..while循环是每次都是先执行一次循环主体,然后再测试判断条件的真假,所以,do..while循环至少都会执行一次循环主体。
public class DoWhileDemo{
public static void main(String[] args){
int x = 1;
int sum = 0;
do{ //do..while至少先执行一次
sum += x;
x++;
}while(x <= 10);
System.out.println("1->10累计的结果为"+sum);
}
}
- for循环
如果开发者已经明确的知道了循环次数,那么就可以使用for循环。
标准的for循环格式:for ( ; ; ){};
/*
用 "*"实现输出正金字塔
*/
class Demo2
{
public static void main(String[] args)
{
for (int i=1;i<=7 ;i++ )
{
for (int j=1;j<=i ;j++ )
{
System.out.print("*");
}
System.out.println();
}
}
}
实现反的金字塔
class Demo3
{
//反金字塔
public static void main(String[] args)
{
int n=6;
for (int i=0;i<n ;i++ )
{
for (int k=1;k<=i ;k++ )
{
System.out.print(" ");
}
for (int j=1;j<=2*(n-i)-1 ;j++)
{
System.out.print("*");
}
System.out.println();
}
}
}
循环的嵌套实现乘法口诀表
//乘法口诀表
class Demo8
{
public static void main(String[] args)
{
for (int i=1;i<=9 ;i++ )
{
for (int j=1;j<=i ;j++ )
{
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
- break
用多分支判断月份的天数
//多分支判断月份的天数
class Demo7
{
public static void main(String[] args)
{
int m=3,year=2012;
if(((year % 100 == 0) && (year % 400 == 0)) || ((year % 100 != 0) && (year % 4 == 0)))
System.out.println("2月有29天");
else{
switch(m){
case 2: System.out.println("2月有28天");break;
case 1 : System.out.println("1月有31天");break;
case 3 : System.out.println("3月有31天");break;
case 4 : System.out.println("4月有30天");break;
case 5 : System.out.println("5月有31天");break;
case 6 : System.out.println("6月有30天");break;
case 7 : System.out.println("7月有31天");break;
case 8 : System.out.println("8月有31天");break;
case 9 : System.out.println("9月有30天");break;
case 10: System.out.println("10月有31天");break;
case 11 : System.out.println("11月有30天");break;
case 12 : System.out.println("12月有31天");break;
default: System.out.println("输入有误");
}
}
}
}
break语句可以强迫程序终端循环,当程序执行到break语句时,即会离开循环,继续执行循环外的下一个语句,如果break语句出现在嵌套中的内部循环,则break语句只会跳出当前层的循环。上面的这个程序如果缺乏break语句,则会继续往下运行,直到遇到break语句或者直到程序最后才会结束。
- continue
public class Demo4
{
public static void main(String[] args){
for (int i=0; i<=3; i++)
{
if(i==2){
continue;
}
System.out.println(i);
}
}
}
输出结果是0,1,3
从程序的运行结果中可以发现,当i的值为2时,程序没有向下执行语句,而是退出到了循环判断出继续向下执行,所以continue只是中断了一次循环操作。
数组
数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按使用可以分为一维数组、二维数组和多维数组。
- 一维数组的声明和分配内存
数据类型 数组名[] =null; //声明一维数组
数组名 = new 数据类型[长度]; //分配内存给数组
也可以用下面这种方式
数据类型[] 数组名 =null; //声明一维数组
平常使用可以使用这种简便的方式
数据类型 数组名[] = new 数据类型[个数] - 数组的静态初始化
数据类型 数组名[] = {初值0,初值1,..初值n};
使用for遍历数组
public class Demo1
{
public static void main(String[] args){
int a[] = {1,2,3,4,5,6,7};
for (int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}