java程序的流程控制语句
1.顺序结构java程序从上到下一行一行地执行,中间没有判断和跳转,直到程序结束。
2.选择结构
根据判断条件的结构,选择性的执行。
2.1 if语句格式1:if(判断条件){ java代码 }
如果判断条件为true时执行java代码;如果判断条件为false时不执行java代码。
格式2:if(判断){
java代码1
}else{
java代码2
}如果判断条件为true时执行java代码1;如果判断条件为false时执行java代码2。此格式可以使用三元表达式代替:(判断条件)? 数值1:数值2
例如:public class IfDemo{
public static void main(String args[]){
/*
int a=30;
int b=20;
if(a
System.out.println("a小于b");
}
System.out.println("执行结束!");
*/
/*
int a=30;
int b=20;
if(a
System.out.println("a小于b");
}else{
System.out.println("a大于b");
}
System.out.println("执行结束!");
*/
// 三元运算符: (判断)? 数值1:数值2 ---if-else语句
/*
int a=30;
int b=20;
System.out.println((a
System.out.println("执行结束!");
*/
}
}
格式3:if(判断1){
java代码1
}else if(判断2){
java代码2
}else if(判断3){
java代码3
}
.....
else if(判断n){
java代码n
}else{
java代码m
}
判断1为true时执行java代码1,结束;
判断1为false时执行判断2;
判断2为true时执行java代码2,结束;
判断2为false时执行判断3;
.......
如果所有的判断都是false,那么就会值最后一个else中的java代码m。
例如:
import java.util.Scanner;
public class IfDemo1{
//创建Scanner类的对象
Scanner input=new Scanner(System.in);
//提示用户
System.out.println("请输入成绩值:");
//接收成绩值
int chengji=input.nextInt();
if((chengji>=60 && chengji < 70)){
System.out.println("成绩:及格");
}else if((chengji>=70 && chengji<=80)){
System.out.println("成绩:良好");
}else if((chengji>80 && chengji<=90)){
System.out.println("成绩:优秀");
}else if((chengji>90 && chengji<=100)){
System.out.println("成绩:异常优秀");
}else{
System.out.println("成绩:不及格");
}
}
}
格式4:if(判断1){
if(判断2){
java代码1
}else{
java代码2
}
}ese{
if((判断3){
java代码3
}else{
java代码4
}
}
以上格式是一个if...else...结构的嵌套。
例如:
import java.util.Scanner;
public class IfDemo2{
public static void main(String args[]){
//创建Scanner类的对象
Scanner input=new Scanner(System.in);
//提示用户
System.out.println("请输入年龄:");
//接收成绩值
int age=input.nextInt();
if(age>20){
if(age<45){
System.out.println("年龄可用");
}else{
System.out.println("年龄过大");
}
}else{
if(age>0){
System.out.println("年龄过小");
}else{
System.out.println("输入错误");
}
}
}
}
2.2 switch语句
switch语句可以代替if(){}else if(){}结构 格式:
switch(表达式){
case 常量值1:java语句1;[break;]
case 常量值2:java语句2;[break;]
.......
case 常量值n:java语句n;[break;]
[default: java语句m;[break;]]
}
先计算表达式的结果,如果表达式的结果与 case后面的常量值比较,
如果相同,执行该case后面对应的java语句,对应的java语句执行以后,检查是否还有[break;]
若果有[break;]语句跳出 switch语句。
若果没有[break;],执行下一个case对应的java语句,直到出现[break;]或者执行完毕。
如果不相同,与下一个case后面的常量值比较,
...
若果与case后面的常量值比较都不同那么就执行default后面的java语句.
注意:表达式的运算结果可以是byte short char int 枚举 String[jdk7.0]
例如:选择题的判断结构
import java.util.Scanner;
public class SwitchDemo{
public static void main(String args[]){
System.out.println("题目:doouble dou=12.5; int i=(int)dou;");
System.out.println("A、10 B、11 C、12 D、11.5");
System.out.println("请选择正确答案:");
Scanner input=new Scanner(System.in);
String answer=input.next();
/*
switch(answer){
case "A":System.out.println("答案A为10");break;
case "B":System.out.println("答案B为11");break;
case "C":System.out.println("答案C为12");break;
case "D":System.out.println("答案D为11.5");break;
default:System.out.println("没有改选项!"); break;
}
*/
//charAt(0);把字符串中的第一个位置上的数据转换成字符型【char】
char newanswer=answer.charAt(0);
switch(newanswer){
case 'A':System.out.println("答案A为10");break;
case 'B':System.out.println("答案B为11");break;
case 'C':System.out.println("答案C为12");break;
case 'D':System.out.println("答案D为11.5");break;
default:System.out.println("没有改选项!"); break;
}
}
}
3.循环结构
按照一定条件,将程序循环执行。
1.for循环格式:
for(初始条件 ; 判断条件 ;循环增量/减量){
需要被循环执行的java代码
}
例如:
public class ForDemo{
public static void main(String args[]){
//循环输出1--10的整数
/*
for(int i=1;i<=10;i++){
System.out.println("i=="+i);
}
*/
//循环输出10--1的整数
/*
for(int i=10;i>0;i--){
System.out.println("i=="+i);
}
*/
//计算1--10的整数和
int sum=0;
for(int i=1;i<=10;i++){
sum=sum+i;
}
System.out.println("sum=="+sum);
}
}
2.while循环格式:
while(判断条件){
需要被循环执行的java代码
}
初始条件被定义在循环结构之外。
循环增量/减量书写在循环体的结尾。
例如:
public class WhileDemo{
public static void main(String args[]){
//循环输出1--10的整数
/*
int i=1;
while(i<=10){
System.out.println("i=="+i);
i++;
}
*/
//循环输出10--1的整数
/*
int i=10;
while(i>=1){
System.out.println("i=="+i);
i--;
}
*/
//计算1--10的整数和
int i=1;
int sum=0;
while(i<=10){
sum=sum+i;
i++;
}
System.out.println("sum=="+sum);
}
}
3.do...while循环格式:do{
需要被循环执行的java代码
}while(判断条件);
初始条件被定义在循环结构之外。
循环增量/减量书写在循环体的结尾。
public class DoWhileDemo{
public static void main(String args[]){
//循环输出1--10的整数
/*
int i=1;
do{
System.out.println("i=="+i);
i++;
}while(i<=10);
*/
//循环输出10--1的整数
/*
int i=10;
do{
System.out.println("i=="+i);
i--;
}while(i>=1);
*/
//计算1--10的整数和
int i=1;
int sum=0;
do{
sum=sum+i;
i++;
}while(i<=10);
System.out.println("sum=="+sum);
}
}
总结:1、for循环 与 while循环和do...while循环的比较
for循环---要清楚自己的循环次数。
while循环和do...while循环---不需要清楚自己的循环次数
2、while循环与do...while循环的比较
while循环--先判断后执行
do...while循环--先执行后判断
同等条件下do...while循环比while循环多执行一次。
猜数字:
1.没有限制条件的猜数字,直至猜对
import java.util.Scanner;
public class CaiShuZi{
public static void main(String args[]){
//定义一个boolean值
boolean flag=true;
//得到一个随机数
//随机产生一个0--1之间的数字
double num1=Math.random();
//转换成0--100之间的小数
num1=num1*100;
int num2=(int)num1;
System.out.println("num2:"+num2);
//创建Scanner对象
Scanner input=new Scanner(System.in);
while(flag){
System.out.println("请输入一个0--100之间的整数:");
int mynum=input.nextInt();
if(mynum>num2){
System.out.println("太大了,换个小一点的,来试试!");
}
if(mynum
System.out.println("太小了,换个大一点的,来试试!");
}
if(mynum==num2){
System.out.println("恭喜你猜对了,游戏结束!");
flag=false;
}
}
}
}
大家可以将上面的实例修改成,有限制条件的猜数字程序。试试吧!
4.break语句break语句出现表示终止或者中断程序的执行。
break语句可以在在switch语句和循环语句中出现;出现在switch语句中表示,跳出switch语句的执行;出现在循环语句中,中断循环的执行。
例如:
public class BreakDemo{
public static void main(String args[]){
//循环输出1--10的整数,当数字等于5的时候,中断输出
for(int i=1;i<=10; i++){
System.out.println("i=="+i);
if(i==5){
break;
}
}
}
}
当循环是一种嵌套结构的时候,使用break表示跳出当前循环。
for(int i=1;i<=10;i++){
System.out.println("外层循环语句中i==="+i);
for(int j=1;j<=10;j++){
System.out.println("内层循环语句中j==="+j);
if(j==5){
break;
}
}
if(i==5){
break;
}
}
5.continue语句 continue语句继续【结束本次循环,进入下次循环】
例如:
public class ContinueDemo{
public static void main(String args[]){
//continue表示结束本次循环进入下次循环
int i=1;
while(i<=10){
i++;
if(i==5){
continue;
}
System.out.println("i==="+i);
}
}
}
6.增强的for循环语句--JDK1.5对for语句进行了改进。普通的for循环
for(初始条件;判断条件;循环增量/减量){
被执行的java代码
}
遍历数组---包数组中保存的数据逐个获取出来。
例如:
public class GetArrayValue{
public static void main(String args[]){
//定义一个char数组
char ch_name[]={'h','e','l','l','o'};
//通过普通的for循环遍历数组
for(int i=0;i
System.out.println("数组值="+ch_name[i]);
}
}
}
增强的for循环语句--遍历数组
格式:
for(数组的数据类型 变量名称:数组名称){
}
例如:
public class GetArrayValue{
public static void main(String args[]){
//定义一个char数组
char ch_name[]={'h','e','l','l','o'};
//增强的for循环语句遍历数组
for(char c_name:ch_name){
System.out.println("增强的for循环中的数组值="+c_name);
}
}
}
以上是我们在java中经常使用的程序流程的控制语句。