Java基础 5 循环语句

来源:互联网 发布:数据挖掘在股票的应用 编辑:程序博客网 时间:2024/06/03 07:50
if单分支结构
语法
if(boolean表达式)
{
当Boolean表达式的值为true时执行这里语句;
}

int i = 12 ; //判断i是不是正整数

if(i > 0)
{
System.out.println(i+"是正整数");
}



if双分支结构

语法
if(boolean表达式或者叫做条件表达式)
{
当Boolean表达式的值为true时执行这里的语句;
}else
{
当Boolean表达式的值为false时执行这里的语句;

}


//例 给定钱的金额,如果大于20元,中午吃煲仔饭,否则吃热干面

int i = 50 ;

if(i > 20)
{
System.out.println("中午吃煲仔饭");
}else
{
System.out.println("中午吃热干面");

}



if多分支结构

语法
if(条件表达式1)
{
当条件表达式1的值为true时执行这里的语句;
}else if(条件表达式2)
{
当条件表达式2的值为true时执行这里的语句;
}else if(条件表达式3)
{
当条件表达式3的值为true时执行这里的语句;
}else
{
当前面所有的表达式的结果均不为true时,执行这里的语句
}


例:给定一定金额的钱,如果大于200 晚上喝红酒,如果小于200但是大于100 晚上喝黄鹤楼,如果小于100大于50 喝啤酒 如果小于50 大于20 喝二锅头 如果小于20 喝农夫山泉

int i = 180 ;

if(i > 200)
{
System.out.println("晚上喝红酒");

}else if(i>100)
{
System.out.println("晚上喝黄鹤楼");

}else if(i > 50)
{
System.out.println("晚上喝啤酒");

}else if(i > 20)
{
System.out.println("晚上喝二锅头");
}else
{
System.out.println("晚上喝农夫山泉");
}



switch开关语句
语法
switch(表达式) //表达式的数据类型只能是以下几种之一 byte short int char enum String
{
case 常量值1:
当表达式的值等于常量值1的时候执行这里的代码块;
[break;] //[break;]表示的是break;这段代码可有可无

当没有break时,匹配到这个常量值后,
执行的代码是 case 常量值1:以后的所有代码包括其他不匹配的常量值中的代码

如果有break;
就只执行匹配到的代码

case 常量值2:
当表达式的值等于常量值2的时候执行这里的代码块;
[break;]
default:
当表达式的值不等于以上所有常量值时,执行这里的代码块
[break;]

}


例:根据成绩的等级编号得到成绩的范围 优(>90) 良(>80) 中(>60) 差(<60)

char dengJi = '优';

switch(dengJi)
{
case '优':
System.out.println("你的成绩是90以上");

case '良':
System.out.println("你的成绩在80 - 90之间");
case '中':
System.out.println("你的成绩在60 - 80 之间");
default:
System.out.println("你的成绩不及格");

}

案例

/**
判断一个数是不是正整数
if(boolean表达式或者叫做条件表达式)
{
一条或多条语句
}

注意:if()后没有;
*/
public class IfDemo
{
public static void main(String[] args)
{
//声明变量
int i = -10 ;

if(i > 0)
{
System.out.println(i+"是正整数");
}

if(i < 0)
{
System.out.println(i+"是负整数");
}

if(i == 0)
{
System.out.println(i+"是0");
}
}
}

/**
有两个数,int a = 4 ; b = 7 ;
求这两个数的最大数
*/
public class IfDemo1
{
public static void main(String[] args)
{
int a = 4 ;
int b = 7 ;

if(a>b)
{
System.out.println(a+">"+b);
}
if(b>a)
{
System.out.println(b+">"+a);
}

if(a == b)
{
System.out.println(b+"="+a);
}
}
}

/**
判断一个小于5位的正整数是几位数
*/

public class IfDemo2
{
public static void main(String[] args)
{
int i = 1234 ;

if(i >= 1000 && i < 10000)
{
System.out.println(i +"是4位数");
}

if(i >= 100 && i < 1000)
{
System.out.println(i+"是3位数");
}

if(i>= 10 && i <100)
{
System.out.println(i+"是2位数");
}

if(i >= 1 && i < 10)
{
System.out.println(i+"是1位数");
}

}
}

/**
给定钱的金额,如果大于20元,中午吃煲仔饭,否则吃热干面
语法
if(boolean表达式)
{
boolean表达式的结果为true时执行这里的代码
}else
{
boolean表达式的结果为false时执行这里的代码
}
*/
public class IfElseDemo1
{
public static void main(String[] args)
{
int i = 21 ;

if(i > 20)
{
System.out.println("中午吃煲仔饭");
}else
{
System.out.println("中午吃热干面");
}

}
}

/**
给定一定金额的钱,如果大于200 晚上喝红酒,
如果小于200但是大于100 晚上喝黄鹤楼,
如果小于100大于50 喝啤酒
如果小于50 大于20 喝二锅头
如果小于20 喝农夫山泉

if(条件表达式1)
{
}else if(条件表达式2)
{
}
....
else
{
}
*/

public class IfElseDemo2
{
public static void main(String[] args)
{
int i = 10;

if(i > 200)
{
System.out.println("晚上喝红酒");

}else if(i > 100)
{
System.out.println("晚上喝黄鹤楼");
}else if(i > 50)
{
System.out.println("晚上喝青岛");
}else if(i > 20)
{
System.out.println("晚上喝二锅头");
}else
{
System.out.println("晚上喝农夫山泉");
}

}
}

/**
根据成绩的等级,优(>=90),良(>=80),中(>=60),差(<60)
来判断学生分数

*/
public class IfElseDemo3
{
public static void main(String[] args)
{
String dengJi = "优";

if(dengJi == "优")
{
System.out.println("你的成绩是90-100");
}else if(dengJi == "良")
{
System.out.println("你的成绩是80-90");
}else if(dengJi == "中")
{
System.out.println("你的成绩是60-80");
}else
{
System.out.println("你不及格");
}
}
}

/**
根据成绩的等级编号得到成绩的范围 优(>90) 良(>80) 中(>60) 差(<60)
switch(表达式)
{
case 常量值1:
当表达式的值等于常量值1的时候执行这里的代码块;
[break;]
当没有break时,匹配到这个常量值后,
执行的代码是 case 常量值1:以后的所有代码包括其他不匹配的常量值中的代码

如果有break;
就只执行匹配到的代码
case 常量值2:
当表达式的值等于常量值2的时候执行这里的代码块;
[break;]
.....

default:
当表达式的值不等于以上所有表达式的值时执行这里的代码块
[break;]
}


*/

public class SwitchDemo1
{
public static void main(String[] args)
{
//声明变量
char dengJi = '差' ;
switch(dengJi)
{
case '优':
System.out.println("你的成绩是90以上");
break;
case '良':
System.out.println("你的成绩是80-90之间");
break;//中断该行代码以下的代码的执行
case '中':
System.out.println("你的成绩是60-80之间");
break;
default:
System.out.println("你的成绩是不及格");
break;

}

}
}


/**
输入年月,判断这个月有多少天
用switch语句
*/
public class SwitchDemo2
{
public static void main(String[] args)
{
int year = 2000;
int month = 2;

switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(month+"月有31天");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(month+"月有30天");
break;
case 2:
//判断年是不是闰年
/**
闰年必须满足以下条件之一
1)可以被4整除且不能被100整除
2)可以被400整除
*/
if((year%4==0)&&(year%100 != 0) || (year%400 == 0))
{
System.out.println(month+"月有29天");
}else
{
System.out.println(month+"月有28天");
}
break;
default:
System.out.println("你输入的数据有误");
break;
}
}
}

循环中断

请计算1到10000的和 1+2+3+4....+10000 =
int i = 1 ;
i = i+2 ;
i = i+3 ;


循环

在程序中当要重复性的做某项工作时可以使用循环语句


循环语句分为三种
for循环
for(初始化表达式;逻辑表达式;迭代表达式)
{
//循环体(需要重复执行的代码)

}

例:打印100次"我爱java"

for(int i = 0 ; i <100 ; i++)
{
System.out.println("我爱Java");
}

循环执行流程:先执行 初始化表达式-->逻辑表达式--->如果结果为false则不进入循环
|
| <--------------------------------------|
如果结果为true则执行循环体-->迭代表达式-->


while循环 先判断再执行

while(条件表达式)
{
循环体,需要重复执行的代码
}


例:打印100次"我爱java"
int i = 0;//初始化表达式

while(i <100)
{
System.out.println("我爱Java!");

i++;//迭代表达式
}


do-while循环(循环体一定会执行一次) 先执行一次循环体,再做判断

do
{
循环体

}while(条件表达式)


例:打印100次"我爱中国"
int i = 0 ; //初始化表达式
do
{
System.out.println("我爱中国"); //循环体
i++ ; //迭代表达式

}while(i<100);




流程跳转语句
break;1,switch -case 中断case语句
2,用在循环中,中断循环

continue; 终止当前循环,继续执行下一次循环