程序的流程控制
1.简单if
语法:
if(条件判断表达式){
执行语句
}
如果条件判断的表达式返回值是true则可以执行if内部的语句,否则如果是false就不可以执行。
条件表达式的结果一定是true或者false
public static void main(String[] args){
//定义一个分数的变量
int score = 66;
if(score >= 60){
System.out.println("恭喜了,及格了");
System.out.println("恭喜了,及格了");
System.out.println("恭喜了,及格了");
}
System.out.println("程序结束");
}
2. if…else
语法:
:if(条件判断表达式){
执行语句
}else{
执行语句
}
案例:
public static void main(String[] args){
//定义一个分数的变量
int score = 56;
if(score >= 60){
System.out.println("恭喜了,及格了");
}else{
System.out.println("抱歉,你没及格");
}
System.out.println("程序结束");
}
3.多重if
多重 if….else if…else
语法:
if(条件判断表达式){
执行语句
}else if(条件表达式1){ //score < 60 && score > 30
执行语句
}else if(条件表达式2){
…..
}else{
}
**注意:**多重if当遇到第一个满足的表达式条件时执行当前的if语句,就不会再向下去执行
class Demo5{
/**
示例:打印每个员工的工资等级,如果大于3000就是D级
,如果大于5000是C级,如果大于8000是B级,如果大于10000是A级。
D C B A
3000-5000 5000-8000 8000-10000 10000-
*/
public static void main(String[] args){
//定义一个工资的变量
int salary = 12000;
if(salary > 10000){
System.out.println("A");
}else if(salary > 8000){
System.out.println("B");
}else if(salary > 5000){
System.out.println("C");
}else if(salary > 3000){
System.out.println("D");
}
System.out.println("程序结束");
}
}
4. Switch分支分析
swtich 的表达式只能是byte, short, char, int, String
switch(表达式){
case 常量1:
执行语句1;
break;
case 常量2:
执行语句2;
break;
…..
default:
执行语句 ;
break;
}
class Demo7{
/**
根据工资级别打印不同的☆
工资的等级
1 2 3 4
☆ ☆☆ ☆☆☆ ☆☆☆☆
*/
public static void main(String[] args){
//定义一个等级的变量
int grade = 2;
//switch的表达式的类型和常量的类型要匹配并且都是byte, short, char, int, String类型
switch(grade){
//如果grade的值和 1相等的话就会执行System.out.println("☆");
case 1:
System.out.println("☆");
break; //跳出switch
case 2:
System.out.println("☆☆");
//break; //跳出switch, 如果没有break就会穿透执行,后面的case即使不匹配也会执行,知道遇到一个break才会跳出switch
case 3:
System.out.println("☆☆☆");
//break; //跳出switch
case 4:
System.out.println("☆☆☆☆");
break; //跳出switch
default:
System.out.println("无级别");
break;
}
System.out.println("程序结束");
}
}
5.三元运算符
语法:逻辑表达式2?表达式3:表达式4
?前面的逻辑表达式2如果运算结果是true,整个表达式的结果就是表达式3
?前面的逻辑表达式2如果运算结果是false,整个表达式的结果就是表达式4
class Demo10{
/**
给定一个变量 1 男, 2, 女
*/
public static void main(String[] args){
//定义一个变量
int gender = 1;
/*
if(gender == 1){
System.out.println("男");
}else{
System.out.println("女");
}
*/
//三元运算适合来代替if else的形式
//逻辑表达式2?表达式3:表达式4 ,三元运算符的结果是由表达式的结果的类型决定, 表达式三和表达式四结果类型要一致
char c = gender == 1?'男':'女';
System.out.println(c);
String man = "我是男";
String result = gender == 1? man:"我是女";
System.out.println(result);
//如果分数大于等于90A, 如果大于等于60B, 小于60C
int score = 99;
/*
if(score >= 90){
System.out.println("A");
}else if(score >= 60){
System.out.println("B");
}else{
System.out.println("C");
}
*/
String result1 = score >= 90? "A":(score >= 60 ? "B":"C");
System.out.println(result1);
}
}
6.循环
(1)while
语法:
while(表达式){
循环体
}
表达式结果如果是true那么就执行循环体,如果是false就结束循环
class Demo12{
/**
示例2:打印1到100之间的所有的偶数和
*/
public static void main(String[] args){
//定义一个计数器
int i = 1;
//定义一个存储结果的变量
int total = 0;
while(i <= 100){
//判断是否是偶数
if(i % 2 == 0){
total += i;
}
//计数器的累加
i++;
}
System.out.println("结果是:"+total);
}
}
(2)do…while循环
语法:
do{
循环体
}while(表达式)
先循环一次在进行判断
class Demo15{
/**
需求:打印100到1000之间的所有夹心饼数。
如:191,838
分析:
循环条件:判断计数器是大于等于100小于1000
循环操作:更新计数器,判断是否是夹心饼干
*/
public static void main(String[] args){
//定义一个计数器
int i = 100;
do{
//获得各位
int g = i % 10;
//获得百位
int b = i / 100;
if(g == b){
System.out.println(i);
}
//计数器的累加
i++;
}while(i < 1000);
}
}
(3)for循环
for循环
语法:for(表达式1; 表达式2; 表达式3){
循环体
}
表达式1:计数器的初始化,它只初始化一次
表达式2:循环条件的判断,多次执行
表达式3:修改计数器,多次执行
案例:
public static void main(String[] args) {
//求和0-100
int sum = 0;
//初始化条件//条件判断//迭代
for (int i = 0; i <= 100; i++) {
System.out.println("sum的结果是:"+(sum+=i));
}
}
循环过程:
- 最先执行初始化步骤,可以声明一种类型,但是初始化一个或者多个循环控制变量,也可以是空语句;
- 然后检测布尔表达式的值,如果为true,循环体被执行,如果为false,循环终止,开始执行循环体后面的内容;
- 执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减);
- 再次检测布尔表达式,循环上述过程;
案例:
计算1到100所有奇数和
public class ForTest1
{
public static void main(String[]args){
int sum=0;
for(int i=1;i<100;i+=2){
sum=sum+i;
}
System.out.println(sum);
}
}