美文网首页
2.6 程序流程控制

2.6 程序流程控制

作者: 姗婷 | 来源:发表于2020-02-21 17:02 被阅读0次

一、判断结构

if语句 三种格式:

  1. if(条件表达式) //条件表达式为true或false
    {
    执行语句;//只有条件表达式为true,才执行大括号里面的语句
    }
int x = 1;
if(x==1)
{
    System.out.println("yes");
}
  1. if(条件表达式)
    {
    执行语句;
    }
    else
    {
    执行语句;
    }
int x = 3;
if(x>3)
{
    System.out.println("yes");
}
else
{
    System.out.println("NO");
}

if else结果简写格式:变量 = (条件表达式)?表达式1:表达式2
三元运算符:
优点:可以简化if else代码
弊端:因为是运算符,所以运算完必须要有一个结果

int a = 9,b;
//b = (a>1)?System.out.println("ABC"):200;//不可以写成这样(无返回值,只是直接打印ABC,但if else就可以直接写输出语句)
b = (a>1)?100:200;//正确写法

3.只要有一个满足,程序就结束
if(条件表达式)
{
执行语句;
}
else if (条件表达式)
{
执行语句;
}
……
else
{
执行语句;
}

int = 3;
if(x>1)//结果只输出a
{
System.out.println("a");
}
else if(x>2)
{
System.out.println("b");
}
else
{
System.out.println("c");
}

//需求:根据用户定义的需求不同,打印对应的星期英文

int x = 3;
if(x==1)
{
    System.out.print("MONDAY");
}
else if(x==3)
{
    System.out.print("Wednesday");
}
else
{
    System.out.print("星期不存在");
}

/需求:根据输入的月份不同,显示春天、夏天、秋天、冬天。
思路:春季:3月-5月,夏季:6月-8月,秋季:9月-11月,冬季:12月-2月

        int x =12;

        if(x<1||x>12)
        {
            System.out.print("输入的季节不存在");
        }

        else if(x>=3 && x<=5)
        {
            System.out.print("春季");
        }
        else if(x>=6 && x<=8)
        {
            System.out.print("夏季");
        }
        else if(x>=9 && x<=11)
        {
            System.out.print("秋季");
        }
        else
        {
            System.out.print("冬季");
        }

二、选择结构

表达式只取byte、short、int、char类型
只有当遇到{}或者break才停止执行
swich(表达式)
{
case 取值1:
执行语句:
break;
case 取值2:
执行语句:
break;
........
default:
执行语句:
break;
}
1.switch语句选择的类型只有四种:byte,short,int ,char。
2.case之间与default没有顺序。先执行第一个case,没有匹配的case执 行 default。
3.结束switch语句的两种情况:遇到break,执行到switch语句结束。
4.如果匹配的case或者default没有对应的break,那么程序会继续向下 执行,运行可以执行的语句,直到遇到 break或者switch结尾结束

int x = 1;
switch(x)
{
   case 1:
       System.out.println("a");
       break;
   case 2:
       System.out.println("b");
       break;
    default:
       System.out.println("不存在");
           break;
}

需求:根据输入的月份不同,显示春天、夏天、秋天、冬天。
思路:春季:3月-5月,夏季:6月-8月,秋季:9月-11月,冬季:12月-2月

int x = 1;
switch(x)
{
    case 3:
    case 4:
    case 5:
        System.out.println(x+"春季");
        break;
    case 6:
    case 7:
    case 8:
        System.out.println(x+"夏季");
        break;
    case 9:
    case 10:
    case 11
        System.out.println("秋季");
        break;
    case 12:
    case 1:
    case 2:
        System.out.println(x+"冬季");
        break;
     default:
        System.out.println(x+"不存在月份");
            break;
}

if和switch很像:具体什么场景下,应用哪个语句呢?
如果判断的具体数据值不多,而符合byte short int char四种类型。
虽然两个语句都可以使用,建议使用switch,因为效率稍微高一些。
其他情况对区间进行判断,结果为boolean类型判断,使用if,if的使用范围更广。

三、循环结构

3.1 while循环

while(表达式)
{
循环体(执行语句);
}
//输出1-10所有寄数

int x = 1;
while(x<10)
 {
    System.out.println("x="+x);
    x+=2;//把左右两边加起来的和赋值给左边
}

3.2 do while循环

do while语句格式:
do
{
执行语句;
}while(条件表达式);

int x = 1;
do
{
System.out.println("x="+x);
x++;
}while(x<3);

while与do while区别:
while:先判断条件,只有条件满足才执行循环体
do while:先执行循环体,再判断条件,条件满足,再继续执行循环体
do while:条件无论是否满足, 循环体至少被执行一次

3.3 for循环

for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}

for(int x = 0;x<3;x++)
{
    System.out.println("x="+x);
}
        int x = 1;
        for(System.out.println("a");x<3;System.out.println("c"))
        {
            System.out.println("d");
            x++;
        }
        //输出结果:adcdc,所以不是所有for的初始化都要是int x = 0;

for与while区别
1,for里面的两个表达式运行的顺序,初始化表达式只读一次,判断循环条件, 为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件, 重复找个过程,直到条件不满足为止。

image.png
2,while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是 在内存中释放。而 while循环使用的变量在循环结束后还可以继续使用。
3,最简单无限循环格式:while(true) , for(;;){}无限循环存在的原因是并不知道循 环多少次,而是根据某些条件,来控制循环。
练习1.获取1~10的和,并打印
//循环注意:一定要明确那些语句需要参与循环,那些不需要
        /*
        0+1
          1+2
          3+3
          6+4
          */
        int sum = 0;//定义变量用处存储不断变化的和,int x = 1;定义变量用于被加的数
        for(int x = 1;x<10;x++)
        {
            sum+=x;
        }
        System.out.println("sum="+sum);

其实这就是累加思想
原理:通过变量记录住循环操作后的结果,通过循环的形式,进行累加动作。
练习2:计算1-100,7的倍数个数
思路:1.先对1~100进行循环
2.再循环的过程中,定义条件,只对7的倍数进行操作
3.因为7的倍数不确定,只要符合条件,就通过一个变量记录这个变化的次数
步骤:1.定义循环语句,选择for语句
2.再循环中定义判断,只要是7的备注即可。使用if语句,条件:7的倍数 x%7==0;
3.定义变量,该变量随着7的倍数的出现而自增

        int count = 0;
        for(int x = 1;x<100;x++)
        {
            if(x%7==0)
            {
                count++;
            }
        }
        System.out.println("count="+count);

计数器思想:通过一个变量记录住数据的状态。也需要通过循环完成
练习3:ForFor嵌套循环

/*输出:
***
**
*
*/
for(int x = 0;x<5;x++)//控制行数
{           
    for(int y = x;y<3;y++)//控制列数
    {
        System.out.print("*");
    }
    System.out.println();
}
/*
*
**
***
*/
    for(int x = 0;x<3;x++)
        {   
            for(int y =0;y<=x;y++)
            {
                System.out.print("*");
            }
            System.out.println();
        }

规律:当的尖朝上,可以改变条件。让条件随着外循环变化。
的尖朝下,可以改变初始化值,让初始化随着外循环变化。
写99乘法表

for (int x = 1;x<10;x++ )
    {
        for(int y = 1;y<=x;y++)
        {
            System.out.print(y+"*"+x+"="+y*x+"\t");
        }
            System.out.println();
    }

相关文章

网友评论

      本文标题:2.6 程序流程控制

      本文链接:https://www.haomeiwen.com/subject/avhvfhtx.html