发表于: 2017-03-14 22:23:25
1 1253
一、今天学到的东西
、关于选择结构中的Switch语句
定义:Switch语句对符合值的类型执行语句操作;
格式:
switch(表达式){
case 值:
语句块;
break;
case 值:
语句块;
break;
case 值:
语句块;
break;
.
.
.
default:
语句块;
break;
}
swich语句的特点:switch语句表达式只能用byte、char、short、int类型;
JDK5可以用枚举;
JDK7可以用字符串类型;
switch语句的注意事项:
switch的只能是常量;
break表示程序执行结束,如果省略可能发生case穿透;
default的意思是程序执行完成都没有值对应执行default语句,用来表示错误数据的输出;
default中的break可以省略;
default在程序中的位置没有影响,但是放在一般放在后面;
其中的几个面试题中学到了几点:
A:现在的调用字符进行判断输出还没学到,但是可以用ASCALL码值根据其中的值进行强制转换为char进行选择输出;
B:字符串的调用现在学的是 sc.nextLine();
switch和if语句的区别:
if语句:
A:if语句的表达式是布尔类型;
B:if语句可以用于取值范围的判断;
C:if语句可以用于几个常量见的判断;
switch语句:
只能用于几个常量之间的判断;
2、循环结构:
1、for循环:
格式:for(初始值;判断语句;控制语句){
循环语句;
}
for循环中判断语句是个布尔类型,它的流程是经过初始值进行判断,结果为TRUE则执行循环语句,结果为false则跳出循环进行下一个语句的执行
2、while循环语句:
格式:
初始化值
while(判断语句){
循环语句;
控制语句;
}
while和for的区别:
for对于有限次数的循环能清楚了当的进行,但是不返回变量值,在下一次的不能使用;
whlie的循环不清楚次数,执行完成就跳出循环,但保留循环结束的变量值,能进行下一次使用;
注意事项:
1:while和for循环一定要当心死循环,它们的使用注意和if语句差不多;
常见的两种死循环:
1、for(;;){}
2、while();{
}
3、do-while循环语句;
格式:
初始化值;
do{
循环语句;
控制条件语句
}while(判断语句);
do-while和while的区别:do-while先不判断条件,执行一次循环,执行循环之后在判断条件进行循环操作;
循环结构的几个练习;
累加求和;
统计个数;
水仙花数;
奇数求和;
九九乘法表;
教了三种\t :tab键进行缩行
\r:回车
\n:换行
图形输出:输出直角三角形;
4、晚上讲了三种跳转语句的用法和区别
第一种:
break跳转:表示中断
用在switch语句和循环语句;离开这两个单独使用无意义(会报错);
使用的范围:单层循环,即跳出单次循环,循环操作不执行;
如:
for(int x = 0; x<10;x++){
if( x == 3){
break;
}
}
输出结果当X=3的时候跳出循环,输出的值为0/1/2的值;
多层循环:
wc: for(int x = 0; x<10;x++){
nc: for(int y = 0; y<10;y++){
if( y == 3){
break wc;
}
}
}
想要跳出多层循环,需要用到格式体: 标签 : 循环层数 如例子,break那个标签的意思就是跳出那个循环;
第二种:
continue:继续
用在循环语句中:
单层循环:
for(int x = 0; x<10;x++){
if( x == 3){
continue;
}
}
此时表示当X==3的时候,跳出循环,然后继续参与循环,结果为0、1、2,4,5,6,7,8,9的值
多层循环和break一样;
第三种:
return:返回
return不表示中止,表示的是返回,即跳出方法
如:
class Alan{
public static void main(String[] args){
for(int x = 0; x<10;x++){
if( x == 3){
return;
}
} System.out.println("输出结束");
}
}
此时为跳出了main方法,所以不会运行输出结束,运行的结果就是0,1,2的值;
关于循环和跳转语句给了一个综合体:是小芳存钱的问题
检查了半天发现多了continu语句,死循环一直执行;思路不够严谨和逻辑性不够强,以后要加强。
例题:
/*
需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,
每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
请问,经过多少天,小芳才可以存到100元钱。
分析:
A:小芳的妈妈每天给她2.5元钱
double dayMoney = 2.5;
B:她都会存起来
double daySum = 0;
C:从第一天开始存储
int dayCount = 1;
D:经过多少天,小芳才可以存到100元钱。
double result = 100;
E:这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
说明要判断dayCount的值,如果对5整除就减去6元钱。
daySum -= 6;
由此还隐含了一个问题,就是如果不是5的倍数天的话,钱要累加
daySum += dayMoney;
F:因为不知道是多少天,所以我用死循环,一旦超过100元我就退出循环。
*/
public static void main(String[] args){
int day=1;
double sum=0;
double x = 2.5;
while(true){
sum += x;
if(sum>=100){
System.out.println("当第"+day+"天的时候存钱数超过100");
break;
}
if(sum%5==0){
sum -=6;
//continue;一直输出的是这个所以一直错误答案
}
day++;
}
}
}
二、遇到的问题:
基本都在书中找到解决
三、明天计划的事情:
忙完学校的事情就能好好在学习了,最近几天一直在忙学校的事情只能复习基础了。
四、收货
收货还是很多,像很多以前学会又忘记的东西现在都能清楚的回忆起和知识点大部分相关的内容了
评论