结构:
执行语句;
执行语句;
执行语句;
执行语句;
执行语句;
执行语句;
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
default:
执行语句;
break;
1/case后面值必须是常量表达式, 不能是变量表达式,多个case后面的值不能相同。
执行语句;
练习2:
结果:纸张折叠20次
执行语句;
for(初始化表达式;判断条件语句;控制条件语句)
执行语句;
//循环体
练习2:
练习03:
1.顺序结构
2.判断结构
3.选择结构
4.循环结构
————————————————
判断结构:if (必须要明确自己的控制范围{})
1. 第一种格式:
if(条件表达式)
{
}
2.第二种格式:(某些情况下,三元运算符就是if...else的简化格式)
(简写格式什么时候用?当if...else运算后,有一个具体的结果时,可以简化写成三元运算符)
if(条件表达式)
{
}
else
//否则,如果前面为true,则不执行else之后的。如果前面为false,则执行else后的。
{
}
3.第三种格式(设置多条件判断):
if(条件表达式)
{
}
else
if
(条件表达式)
{
}
……
else
{
}
_____________________________________________________________
局部代码块
{}花括号中的为
代码块。
变量只在{ }中起作用。
局部代码块可以定义局部变量的生命周期。
变量——1.必须要有初始化值,2.必须有自己所属的作用域
____________________________________________________________
switch 选择结构
switch中的表达式的值分别与case的值比对,选择一致的值的case下的执行语句,如果都不匹配,最后执行default下的执行语句。
格式:
switch(表达式)
{
..........
}
switch的特点:
1/可选择数据有限: switch()
//byte
short
int
char (可支持符号数据)
2/switch备选答案是无序的。
switch语句的注意事项:
1/case后面值必须是常量表达式, 不能是变量表达式,多个case后面的值不能相同。
2/default不建议省略,因为它的作用是对不正确的情况给出提示。
————————————————————————————————————
if 和 switch 的特点和区别,及应用
if :
1.对具体的值进行判断;
2.对区间判断;
3.对运算结果是boolean类型的表达式进行判断。
switch:
1.对具体的之进行判断;
2.值的个数通常是固定的;
对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案加载进内存。
——————————————————————————————
循环结构
语句:while , do while , for
循环语句的四个组成:
1-初始化语句
2-判断条件语句
3-循环体语句
4-控制条件语句(在这部分一次循环体结束后,下一部分循环体执行前执行,通过控制循环条件中的变量,使循环在合适的时候结束。
1/while 循环语句
基本格式:
while(
条件表达式)
//
条件表达式:看的就是true 和 false
{
}
扩展格式:
初始化语句;
while(判断条件语句)
{
循环体语句;
控制条件语句;
}
练习1:
/*
初始化语句;
while(判断条件语句)
{
循环体语句;
控制条件语句;
}
While 语句与For 循环语句可以等价转换
练习:输出10次helloworld
*/
class WhileDemo_01
{
public static void main(String[] args)
{
for (int x=0;x<=10 ;x++ ) //for循环实现
{
System.out.println("Hello World");
}
System.out.println("_____________________");
int y = 0; //while循环实现
while (y<=10)
{
System.out.println("Hello World");
y = y+1;
}
}
}
练习2:
求出1-100之和
/*
练习:求出1-100之和
*/
class WhileTest_01
{
public static void main(String[] args)
{
int sum = 0; //初始化语句
int x=1;
while (x<=100) //条件判断语句
{
sum =sum+x; //循环体语句
x =x+1; //条件控制语句
}
System.out.println("1-100之和="+sum);
}
}
练习3:
统计水仙花数有多少个
/*
统计水仙花数有多少个
*/
class WhileTest_02
{
public static void main(String[] args)
{
int count = 0;
int x =100;
while (x<1000)
{
int ge =x%10;
int shi = x/10%10;
int bai = x/10/10%10;
if ((ge*ge*ge+shi*shi*shi+bai*bai*bai)==x)
{
count =count +1;
}
x =x+1;
}
System.out.println("水仙花合计"+count+"个");
}
}
练习4:
最高峰珠穆朗玛峰8848m.一张足够大的纸(厚度0.01m)折叠多少次能达到这个高度。
/*
最高峰珠穆朗玛峰8848m.一张足够大的纸(厚度0.01m)折叠多少次能达到这个高度。
分析:
1/定义一个计数变量count
2/最大值8848m
3/纸张厚度0.01m
4/每折叠一次的厚度是上一次的2倍
*/
class WhileTest_03
{
public static void main(String[] args)
{
int count =0;
int start = 1;
int max = 884800;
while (start<max)
{
count = count+1;
start = start*2;
}
System.out.println("纸张折叠"+count+"次");
}
}
结果:纸张折叠20次
_____________________________________
2/ do while循环语句(
无论条件是否满足,循环体至少执行一次)(练习“累加思想”和“计数器思想”)
基本格式:
do
{
}
while(条件表达式);
扩展格式:
初始化语句;
do{
循环体语句;
控制条件语句;
}
while(判断条件语句);
练习01:
打印10次Hello World
class DoWhileTest_01
{
public static void main(String[] args)
{
int x =1;
do
{
System.out.println("Hello World");
x++;
}
while (x<=10);
}
}
练习02:
求1-100所有数的和
/*
求1-100所有数的和
*/
class DoWhileTest_02
{
public static void main(String[] args)
{
int sum = 0;
int x =1;
do
{
sum=sum+x;
x++;
}
while (x<=100);
System.out.println("sum="+sum);
}
}
——————————————————————————
3/ for 循环语句
格式:
{
}
初始化表达式:定义变量
循环条件表达式:设置循环条件
循环后的操作表达式:设置变量变化控制计数
练习1:
class ForTest_03
{
public static void main(String[] args)
{
//求1-100数相加的和
int sum = 0;
for (int x=1;x<=100 ;x++ )
{
sum = sum +x;
}
System.out.println("sum="+sum);
System.out.println("___________________________");
//求1-100偶数相加的和
int sum1 = 0;
for (int x=1;x<=100 ;x++ )
{
if (x%2 ==0)
{
sum1 = sum1+x;
}
}
System.out.println("1_100偶数和="+sum1);
System.out.println("___________________________");
//求1-100奇数相加的和
int sum2 = 0;
for (int x=1;x<=100 ;x++ )
{
if (x%2 !=0) //判断除2不为零的数为奇数
{
sum2 = sum2 +x;
}
}
System.out.println("1_100奇数和="+sum2);
}
}
练习2:
/*
求5的阶乘
n!=n*(n-1)!
n!=n*(n-1)*(n-2)*(n-3)*...*3*2*1
*/
class ForTest_04
{
public static void main(String[] args)
{
int jc = 1;
for (int x=1;x<=5 ;x++ )
{
jc = jc * x;
}
System.out.println("5的阶乘="+jc);
}
}
练习3:
水仙花数
所谓水仙花数,是指一个
三位数,其
各位数字的立方和等于该数本身。
例如:
153 = 1*1*1 +5*5*5 +3*3*3 =1 +125 +27 =153
步骤分析:
a/ 三位数告诉我们范围
b/通过for循环获取每一个三位数。关键是如何获取这个三位数的个,十,百位上的数据:——>通过取模法
假设一个数据是:153
个位:153 % 10 = 3
十位:153 /10 %10 =5
百位:153 /10 /10 %10 =1
.........
c/让个位*个位*个位+十位*十位*十位+百位*百位*百位 和该数据比较,如果相同,输出
代码:
class ForTest_05
{
public static void main(String[] args)
{
for (int x=100;x<1000 ;x++ ) //限定三位数的范围
{
int ge = x%10; //取出个位上的数
int shi = x/10%10; //取出十位上的数
int bai = x/10/10%10; //取出百位上的数
if (x == (ge*ge*ge+shi*shi*shi+bai*bai*bai)) //判断各位数字的立方和是否等于该数本身
{
System.out.println(x);
}
}
}
}
练习4:
输出满足如下条件的五位数:
个位等于万位
十位等于千位
个位+s十位+千位+万位=百位
个位等于万位
十位等于千位
个位+s十位+千位+万位=百位
/*
练习:
输出满足如下条件的五位数:
个位等于万位
十位等于千位
个位+s十位+千位+万位=百位
步骤分析:
1/用for循环限定并遍历五位数
2/分别取出各位数字
3/用if依据要求判断数字是否满足要求
*/
class ForTest_06
{
public static void main(String[] args)
{
for (int x=10000;x<100000 ;x++ )
{
int ge = x%10;
int shi = x/10%10;
int bai = x/10/10%10;
int qian = x/10/10/10%10;
int wan = x/10/10/10/10%10;
if ((ge==wan)&&(shi==qian)&&((ge+shi+qian+wan)==bai))
{
System.out.println(x);
}
}
}
}
练习5:
(统计思想)
统计水仙花数有多少个
/*
需求:统计水仙花数有多少个
步骤分析:
1/水仙花数限定在三位数
2/用for遍历三位数
3/分别取出各位数值,并用if判断是否符合水仙花条件
4/统计数值并输出(设置一个count变量)
*/
class ForTest_07
{
public static void main(String[] args)
{
int count = 0; //设置一个count变量用于统计个数
for (int x=100;x<1000 ;x++ )
{
int ge = x%10;
int shi = x/10%10;
int bai = x/10/10%10;
if ((ge*ge*ge+shi*shi*shi+bai*bai*bai)==x)
{
count = count+1; //如果满足条件则计入count
}
}
System.out.println("水仙花个数="+count);
}
}
练习6:
统计1——1000之间同时满足如下条件的数据有多少个
对3整除余2
对5整除余3
对7整除余2
对3整除余2
对5整除余3
对7整除余2
/*
统计1——1000之间同时满足如下条件的数据有多少个
对3整除余2
对5整除余3
对7整除余2
步骤分析:
1/ 用for遍历1——1000的数
2/设置1个变量,用于将分别满足条件的数赋值
x%3==2
x%5==3
x%7==2
2/用if判断每个数是否满足三个条件
3/设置一个计数器count用来统计数字
4/输出统计数值
*/
class ForTest_08
{
public static void main(String[] args)
{
int count = 0;
for (int x=1;x<=1000 ;x++ )
{
if ((x%3==2) && (x%5==3) && (x%7==2))
{
count = count+1;
}
}
System.out.println("满足条件的数共计="+count);
}
}
————————————————————————————————————————————————
ForFor 循环嵌套
循环嵌套:就是循环语句的循环体本事是一个循环语句。
外循环控制行数
内循环控制列数
练习01:
输出一个4行5列的星星(*)图案
/*
输出一个4行5列的星星(*)图案
*****
*****
*****
*****
*/
class ForForTest_01
{
public static void main(String[] args)
{
for (int y=0;y<=4 ;y++ ) //外部循环实现四次打印
{
for (int x=0;x<=5 ;x++ ) //内部循环负责打印一行五颗*
{
System.out.print("*");
}
System.out.println(); //每次打印一行后换行
}
}
}
练习02:
输出如下图形:
*
**
***
****
*****
/*
行数不需要变化,变化的是列数
列数变化规律:
第一行:1列 y=0,y<=0,y++
第二行:2列 y-0,y<=1,y++
第三行:3列 y=0,y<=2,y++
第四行:4列 y=0,y<=3,y++
第五行: 5列 y=0,y<=4,y++
y<=的数值,正好与外循环中的x相对应
*/
class ForForTest_02
{
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();
}
}
}
练习03:
输出九九乘法表
/*
输出九九乘法表
*/
class ForForTest_03
{
public static void main(String[] args)
{
for (int x=1;x<=9 ;x++ ) //为了使用数据将x=1
{
for (int y=1;y<=x ;y++ )
{
System.out.print(y+"*"+x+"="+y*x+"\t"); //九九乘法表的列开头数与y的变化相符,被乘数与X变化相符
}
System.out.println();
}
}
}
________________________________________________________
其他的流程控制语句
break(中断当前循环),
1/ 跳出单层循环
2/ 跳出多层循环
要想实现跳出多层循环的效果,就必须使用带标签的语句。——>
标签名:语句
范例:
class BreakDemo_01
{
public static void main(String[] args)
{
wc:for (int x=0;x<3 ;x++ ) //加入标签名wc
{
nc:for (int y=0;y<4 ;y++ ) //加入标签名nc
{
if (y==2)
{
break wc; //break默认中断当前单层循环,通过指向标签名wc来结束多层循环
}
System.out.print("*");
}
System.out.println();
}
}
}
continue(继续)
放置在循环中,离开此场景无意义。
跳出一次循环,进入下一次的执行。(break是中断整个循环,不再执行)
return(返回)
作用不是结束循环的,是用来结束方法的。
——————————————————————————————————————————
反义字符
回车:\n
制表符:\t
退格:\b
按下回车键: \r
window系统中回车符其实是由两个符号组成: \r\n
linux中回车符是 \n