if (条件表达式)
{
执行语句;
}
if (条件表达式)
{
执行语句;
}
else
{
执行语句;
}
if (条件表达式)
{
执行语句;
}
else if (条件表达式)
{
执行语句;
}
else
{
执行语句
}
if else 结构 简写格式: 变量 = (条件表达式)?表达式1:表达式2;
三元运算符:
好处:可以简化if else代码。
弊端:因为是一个运算符,所以运算完必须要有一个结果。
int a = 9,b;
b = (a>1)?100:200;
if(a>1)
b = 100;
else
b = 200;
Switch (表达式)
{
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
…
case 常量表达式n:
语句n;
break;
default:
语句n;
break; //位置可以不一样,但是执行顺序还是最后执行
}
if和switch语句很像。
具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而且符合byte short int char这四种类型。
虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
class WhileDemo
{
public static void main(String[] args)
{
/*
定义初始化表达式
while(条件表达式)
{
循环体(执行语句);
}
*/
int x=1;
while (x<3)
{
System.out.println("x="+x);
x++;
}
do
{
System.out.println("x="+x);
}
while (x<3);
/*
while:先判断条件,只有条件满足才执行循环体
do while:先执行循环体,在判断条件,条件满足,再继续执行循环体
简单一句话:do while :无论条件是否满足,循环体至少执行一次
*/
}
}
class ForDemo
{
public static void main(String[] args)
{
/*
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
*/
for (int x=1;x<5 ;x++ )
{
System.out.println("x="+x);
}
int y=1;
while (y<5)
{
System.out.println("y="+y);
y++;
}
/*
1、变量有自己的作用域。对于for来讲:如果将用于控制循环的增量定义在for语句中,那么该变量只在for语句内有效。
for语句执行完毕,该变量在内存中被释放
2、for和while可以进行互换,如果需要定义循环增量,用for更为合适
总结:
什么时候使用循环结构?
当要对某些语句执行许多次时,就是用循环结构。
*/
}
}
class ForTest
{
public static void main(String[] args)
{
/*for (System.out.println("a");System.out.println("b");System.out.println("c") )
不兼容的类型
找到: void
需要: boolean*/
int x=1;
for(/*int x=1,错误*/System.out.println("a");x<3;System.out.println("c"),x++)
{
System.out.println("d");
}
/*
最简单的无限循环:
for (; ; )
{
}
while (true)
{
}
*/
}
}
//需求:用于打印1-10的和
class ForTest2
{
public static void main(String[] args)
{
//1、定义变量用于存储不断变化的和
int sum=0;
//2、定义循环,重复加法的过程,变量用于记住不断变化的被加的数
for (int x=1;x<=10 ;x++ )
{
sum=x+sum;//sum+=x;
}
System.out.println("sum="+sum);
/*
其实这就是累加思想。
原理:通过变量记录住每次变化的结果。
通过循环的形式,进行累加动作。
循环注意:
一定要明确哪些语句需要参与循环,那些不需要
*/
int num=0;
int y=1;
while(y<=10)
{
num=y+num;
y++;
}
System.out.println("num="+num);
}
}
//需求:打印1——100之中7的倍数,并统计个数
/*
思路:
1、先对1~100进行循环(遍历)通过循环的形式。
2、在遍历的过程中,定义条件,只对7的倍数进行操作。
3、因为7的倍数不确定,只要符合条件,就通过一个变量来记录住这个变化的次数。
步骤:
1、定义循环语句,选择for语句。
2、再循环中定义判断。只要是7的倍数即可,使用if语句。条件:7的倍数 x%7==0
3、定义变量,该变量随着7的倍数的出现而自增。
*/
class ForTest3
{
public static void main(String[] args)
{
int count=0;
for (int x=1;x<=100 ;x++ )
{
if (x%7==0)
{
count++;
System.out.println("x="+x);
}
}
System.out.println("count="+count);
/*
计数器思想
通过一个变量记录住数据的状态变化
通过循环完成
*/
//语句嵌套形式,其实就是语句中还有语句。
//循环嵌套
/*
******
******
******
发现图形有很多行,每一个行有很多列
要使用嵌套循环,原理:形象说法:大圈套小圈。
*/
for (int x=0; x<3;x++ )//x<3外循环控制行数,有三行
{
for (int y=x;y<6 ;y++ )//y<6内循环控制列数,有六列
{
System.out.print("*");
}
System.out.println();
}
System.out.println("---------------------------");
}
/*
对于打印长方形:外循环控制的行数,内循环控制的是每一行的列数,也就是一行中元素的个数
*/
/*
*
**
***
****
*****
*/
class ForForTest
{
public static void main(String[] args)
{
/*
不是规律的规律:
尖朝上,可以改变条件。让条件随着外循环变化
尖朝下,可以初始化值,让初始化值随着外循环变化
*/
for (int x=0;x<5 ;x++ )
{
for (int y=0; y<=x;y++ )
{
System.out.print("*");
}
System.out.println();
}
/*
----*
---* *
--* * *
-* * * *
* * * * *
*/
class ForForTest2
{
public static void main(String[] args)
{
for (int x=0;x<5 ;x++ )
{
for (int y=x+1;y<5 ;y++ )
{
System.out.print("-");
}
for (int z=0;z<=x ;z++ )
{
System.out.print("* ");
}
System.out.println();
}
System.out.println("---------------------");
}
class OtherDemo
{
public static void main(String[] args)
{
//break:跳出循环,把内外两个循环做上标记,然后指定跳出某个循环
w:for (int x=0;x<3 ;x++ )
{
s:for (int y=0;y<4 ;y++ )
{
System.out.println("x="+x);
break w;
}
}
//continue:只能作用于循环结构。含义是继续循环。特点:结束本次循环,继续进行下一次循环
for (int x=1;x<10 ;x++ )
{
if (x%2==0)
{
continue;
}
System.out.println("x="+x);
}
cw:for (int x=0; x<5; x++)
{
cn:for (int y=0;y<2 ;y++ )
{
System.out.println("x="+x+"\ty="+y);
continue cw;
}
}
/*
记住:
1、break 和continue语句作用的范围
2、break和continue单独存在时,下面不可以有任何语句。因为都执行不到
*/
}
}