顺序结构:如果代码里没有流程控制,程序是至上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,直到程序的最后。
if语句
/**
if语句:
基本语法:if(表达式){方法体}else if(表达式){方法体}else(方法体)
三种格式:
if(条件表达式){执行语句;}
if(条件表达式){执行语句;}else{执行语句;}
if(条件表达式){执行语句;}else if (条件表达式){执行语句;}……else{执行语句;}
*/
public class If
{
public static void main(String args[])
{
int i = 3; //第一个语句块
if (i > 5)
{
System.out.println("变量i大于5"); //if语句按顺序执行第二个语句块。
}
else if (i > 4)
{
System.out.println("变量i小于4"); //if条件为flash就跳过顺序执行else if 第三个语句块
}
else
{
System.out.println("其他"); //前面都为false,执行else,输出显示:其他
}
}
}
switch语句
/**
格式:
switch(表达式)
{
case 表达式可能的结果值1:
执行语句;
break;
case 表达式可能的结果值2:
执行语句;
break;
...
default:
执行语句;
break;//最后这个一般不写
}
*/
class switch
{
public static void main(String[] args)
{
int a = 7,b = 5;
switch(a-b)
{
case 3: //表达式可能的值;
{
System.out.println("33!"); //当switch的值和case值匹配的时候执行该语句,
}
break; //执行完case语句块遇到break则结束switch语句!case 4:
{
System.out.println("44!");
}
break;
default: //都没有执行则执行该语句!
System.out.println("其它的");}
}
}
循环结构:while & do while & for/**
while语句
格式:
while(条件表达式值为true)
{
执行语句;
}do while语句
格式:
do
{
执行语句;
}
while(条件表达式值为true);
do while特点是无论条件是否满足,循环体至少被执行一次。
循环里的条件表达式不能直接写false或直接写结果是false的表达式,不过可以使用变量来传递false值
循环结构(for)
格式:
for(初始化表达式(1);循环条件表达式(2);循环后的操作表达式(3))
{
执行语句;(4)
}
最简单无限循环格式:while(true) , for(;;),
for和while区别:for定义的变量在循环结束就从内存中释放,while定义的变量在循环结束依然可以使用
*/
class while //while循环控制求出100以内前5个3的倍数的数字
{
public static void main(String[] args)
{
int i = 1,k = 0;
while(i<=100)
{
if(i%3==0)
{
if(k<5)
System.out.println(i);
k++;
}
i++;
}
}
}class dowhile //dowhile循环控制求出100以内前5个3的倍数的数字
{
public static void main(String[] args)
{
int i = 1,k = 0;
do{
if(i%3==0)
{
if(k<5)
System.out.println(i);
k++;
}
i++;
}
while(i<=100);
}
}class for //for循环控制求出100以内前5个3的倍数的数字
{
public static void main(String[] args)
{
int i = 1,k = 0;
for(;i<100;i++) //执行顺序:(1) → (2) → (4) → (3) → (2) → (4) → (3){ //
if(i%3==0&&k<5)
{
System.out.println(i);
k++;
}
}
}
}嵌套循环:循环里套循环/**
利用for循环语句的嵌套打印出乘法口诀表
*/
class break
{
public static void main(String[] args)
{
for(int i=1;i<=10;i++) //定义i与j的值必须在for循环里面{ //否则每次跳出循环重新执行就无法取值
for(int j=1;j<=10;j++)
{
if(j<=i)
System.out.print(j+"*"+i+"="+i*j+" "); //print()括号里面必须传递参数} //println()无限制!
System.out.println();
}
}
}流程控制:/**
break:终止该层循环;
continue:跳过该层循环
注:
①:若这两个语句离开应用范围,存在是没有意义的。
②:这个两个语句后面都不能有语句,因为执行不到。
③:continue语句是跳过本次循环,继续下次循环。
④:标签的出现,可以让这两个语句作用于指定的循环。
*/
public class Demo {
public static void main(String[] args) {
int i = 1;
for (; i < 10; i++) {
System.out.println(i);
if(i == 8){
break;//流程控制,不会完全执行!
}
}
}
}