[2017.10.1]条件控制&循环控制

本文详细介绍了Java中的三种基本流程控制结构:顺序控制、条件控制和循环控制。包括if语句、switch case、while循环、do...while循环及for循环的具体用法与实例,帮助初学者快速掌握Java编程的基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. java三大流程控制

1. 顺序控制:

依次执行代码



2. 条件控制:
(1)if语句:

①格式:

if(条件){

//实现逻辑
}

②条件:

              a.可以是一个常量表达式或包含变量的表达式

  b.boolean类型
  c.{}可以省略(仅执行一行代码)
 
③练习:
 public class Exercise1 {
public static void main(String[] args){
int score = 80;
if(score>=90){
  System.out.println("iphone");

}else if(score>70 && score<90){

  System.out.println("ipod");

}else if(score<=70 && score>60){

  System.out.println("huawei");
}
}


(2)if...else语句

①格式:

if(条件){

//实现逻辑
}else{
//实现逻辑
}


(3)if(条件)...else if(条件)...else

①注意:

else 可以省略

②练习:
public class Exercise2 {
public static void main(String[] args){
 //如果今天是周末,我们搞活动
//如果今天是周内,我们上课
//如果是周末,如果下雨,我们搞室内活动
//如果是周末,如果不下雨,我们搞室外活动
//如果人数大于5,打游戏;否则看书


boolean isWeekend = true;

boolean isRain = true;
int joinPersonNum = 5;


if(isWeekend){

if(isRain){
if(joinPersonNum > 5){
System.out.println("打游戏");
}else{
System.out.println("看书");
}
}else{
System.out.println("室外活动");
}
}else{

System.out.println("上课");

}
}

}


(4)switch case

①格式:

switch(判断值){

case 值1:
break;
case 值2:
break;
.......
case 值n:
break;

default:
}
②注意:
a.switch后面的()一定不能省略
b.switch后面跟的是整型或字符型(先转换成asc2码)
c.case值只能是常量(1,2,'A','C')或常量表达式(2*3,'a'+3)
d.break:跳出匹配到的条件,可以省略
e.default:可以省略,可以放在任何位置
③练习:
public class Exercise3 {
public static void main(String[] args){
int ranking = 10;

//前三名800元,4-6名500元,其余100元
switch(ranking){
   case 1:
   case 2:
   case 3:
System.out.println("800");
break;

   case 4:
   case 5:
   case 6:
   System.out.println("500");
   break;
   
   default:
   System.out.println("100");
}
}

}


注:条件语句彼此可以嵌套使用,一般建议三层.



3.循环控制

(1)while循环
①结构:
while(循环条件){
//循环实现的代码
}

②条件:

可以是一个变量,也可以是字面常量,也可以是表达式

③类型:

boolean

④练习:
public class Exercise4 {
public static void main(String[] args){

int maxNum = 11;
int minNum = 10;

while(minNum<=maxNum){
System.out.println(minNum);
minNum++;
}
}
}
(2)do ... while循环
①结构:
do{
//实现的代码
}while(循环的条件);

②特点:

先执行后判断,不管条件是否成立,都会至少先执行一次do中的代码

③练习:
public class Exercise5 {
public static void main(String[] args){
int maxNum = 10;
int minNum = 1;
 
//打印1-10之间的自然数
do{
System.out.println(minNum);
minNum++;
}while(minNum<=maxNum);
}
}
(3)for 循环
①结构:
for(循环变量初始化 ;循环条件判断; 循环变量的改变){
//循环需要实现的逻辑
}
三个部分都可以省略.但分号不能省略
②执行流程:
a.循环变量初始化,在整个循环过程中,只会执行一次
b.进行循环条件的判断,如果满足条件则执行,否则结束
c.当循环条件满足后,执行代码,最后进行循环变量的改变

③练习:
public class Exercise6 {
public static void main(String[] args){
int minNum = 1;
final int MAX_NUM = 50;
int sum = 0;

//1-50之间偶数的和
for(int i = 1;i<=MAX_NUM;i++){
if(i%2 == 0){
sum+=i;
}
}
System.out.println("sum="+sum);
}
}


4. 关键字:

(1)continue(跳出当次循环):

在循环的代码体中,如果遇到continue, 则会跳出当次循环,循环体内continue之后的代码都不会执行,并且循环变量进行一次改变操作,
之后再次进行条件判断,如果满足条件,则进入循环,否则直接结束循环; 跳出的仅是continue外层直接包裹的循环.

(2)break(跳出整个循环):
在循环的代码体中,如果遇到break,则会跳出本循环代码块,break后的代码不会执行。并且整个循环的过程结束。
break后退出的循环也是直接包围break的循环.

②课堂练习:
a.求1-50(两边都闭区间), 所有偶数的和.
最终输出结果.
public class Exercise7 {
public static void main(String[] args){
int minNum = 1;
final int MAX_NUM = 50;
int sum = 0;

//1-50之间偶数的和
while(minNum<=MAX_NUM){
sum += (minNum%2==0)?minNum:0;
minNum++;

}

System.out.println(sum);

}
}

b.求1-100自然数,其中所有偶数的和,所有奇数的和,并且求所有偶数的和与所有奇数的和的差.
public class Exercise8 {
public static void main(String[] args){
int evenSum = 0;
int unevenSum = 0;
final int MAX_NUM = 100;

for(int i = 1;i<=MAX_NUM;i++){
if(i%2 == 0){
evenSum+=i;
}else{
unevenSum+=i;
}
}
   System.out.println(evenSum - unevenSum);
}
}

5. 循环的嵌套:
层数无限制,编译不会出错,但最多两层.

6.课堂练习:

public class Exercise9 {

/*
输出: *
     **
 ***
 ****
 *****
*/
public static void main(String[] args){
    for(int j = 1;j<=5;j++){
    for(int i = 1;i<=j;i++){
   System.out.print("*");
}
System.out.println("");
    }
/*
 输出: 
*****
****
***
**
*
     
*/
System.out.println();
for(int j = 1;j<=5;j++){
for(int i =1;i<=(6-j);i++){
System.out.print("*");
}
System.out.println("");
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值