【笔记】我要自学网里自己整理的笔记(第四章)l
本帖最后由 奋斗丶小Z 于 2016-6-6 14:09 编辑51zxw的java基础教程里面的笔记这是第四章的,刚学习做了下笔记,分享给你们,我会时常更新
前三章笔记地址:http://www.52pojie.cn/thread-497219-1-1.html第五章笔记地址:http://www.52pojie.cn/thread-498084-1-1.html
附件有文本格式的可以下载,顺便赞助我点把!
4-1 认识循环
4.2 算术运算符的分类
一元运算符(只对一位操作数) i只是变量 ++(--)是运算符
i++; <二> i+=1<二>i=i+1; //先使用后对自身加1 int i=1; int b=i++;b=1 i=2(先给b在+1)
++i; <二> i+=1<二>i=i+1; //先对自身加1后使用 int r=1; int b=++r;b=2 r=2 (先+1在给b)
i--;//意思跟i++类似
--i;//意思跟++i类似
二元运算符(只对两位操作数)
(+ - * / %)
三元运算符
if(a>100){
c=200;
}else{
c=500;
}
<二>等价于
int a=100
int c=a>100 ? 200:500;
4.3while循环语句 先判断再执行
符合条件,循环继续执行;否则,循环退出。
格式:while(循环条件){循环操作}
|
| 假
----循环条件--------》
^ |
| 真|
| |
<----循环操作
例子:当1小于等于10时循环输出文字"循环"显示i的数值并把i数值+1,i大于10时输出"循环完毕"
public class AA{
public static void main(String[] args){
int i=0;
while(i<=10){//条件为i<=10,成立时执行循环。大于10后就不执行本循环
System.out.println("循环");
System.out.println(i);
i++;//i+1
}System.out.println("循环完毕");
}
}
4.4 实例:累加求和
循环三要素:
1) 循环变量初始化 int i=0;
2) 循环的判断条件 while(i<=10)
3) 循环体中改变的循环变量的值
循环在哪里使用?
1)重复执行的代码
2)相近或相似的代码,其中变化的地方是有规律的
算1+2+3.....+100的和
public class AA{
public static void main(String[] args){
int i=1;
int ii=0;
while(i<=100){//条件为i<=100,成立时执行循环。大于10后就不执行本循环
ii=ii+i;
i++;//i+1;
}System.out.println(ii);
}
}
4.5实例:求学员平均成绩
在while中声明的变量为局部变量,只能在while里使用
题目:录入班级人数和学院成绩,计算班级学员的平均成绩
import java.util.*;
public class AA{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("请输入班级学生人数");
int renshu=in.nextInt();
int i=1;
int fenshu=0;
while(i<=renshu){
System.out.println("请输入第"+i+"个学生成绩");
int a=in.nextInt();
fenshu=fenshu+a;
i++;
}
int pingjunfun=fenshu/renshu;
System.out.println("当前班级人数为;"+renshu+"总分为:"+fenshu+"平均分为:"+pingjunfun);
}
}
4.6 while循环小结事例
问:2006年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培养学员人数将达到20万人?
public class AA{
public static void main(String[] args){
int i=80000;
int nian=2006;
while(i<=200000){
i=i+(i/100*25);
nian++;
}
System.out.println(nian+"年将达到20万人");
}
}
4.7do-while循环结构
格式:do{循环操作}while{循环条件};
特点:先执行,在判断(先执行一次操作,条件符合继续循环,条件不符合循环退出继续往下执行)
do-while循环和while循环的区别
1)语法不同
while(循环条件){循环操作}; 比如:上台表演,评委先看你的长相判断你是否开始表演,才能判断你表演好坏
do{循环操作}while(循环条件); 比如:上台表演,你先表演评委在判断表演好坏
举例:4.6题
public class AA{
public static void main(String[] args){
int i=80000;
int nian=2006;
do{i=i+(i/100*25);
nian++;
}while(i<=200000);
System.out.println(nian+"年将达到20万人");
}
}
4.8 实例:猜数字游戏
import java.util.*;
public class AA{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int diannao=(int)(Math.random()*100)+1;
int shuzi;
do{
System.out.println("请猜一下电脑随机生成的数是多少?(0-100)");
shuzi=in.nextInt();
if(shuzi>100){
System.out.println("请输入有效数字");
}else if(shuzi<0){
System.out.println("请输入有效数字");
}else if(shuzi>diannao){
System.out.println("你输入的数字大了");
}else if(shuzi<diannao){
System.out.println("你输入的数字小了");
}
}while(shuzi!=diannao);
System.out.println("恭喜你猜对了");
}
}
4-9 安装MyEclipse
4-10 使用MyEclipse新建项目
4.11 使用MyEclipse创建java文件
4-12 程序调试 (1)
程序调试的目的:找出缺陷原因,修正缺陷
程序调试的主要方法:设置断点 单步运行 观察变量
调试的主要步骤:
1)猜测出错的位置,设置断点
2)单步运行
3)观察变量的值
4)发现问题
5)修正代码,重新运行
6)解决问题
断点:程序暂停执行的代码行
Debug:调试
4-13 程序调试(2)
调试过程中变量的变化可以在窗口-->显示视图-->变量
import java.util.*;
public class AA{
public static void main(String[] args){
System.out.println("请输入一个整数"); //输入123456
Scanner in=new Scanner(System.in); //新建一个Scanner名字为in
int aa=in.nextInt();//接收123456给aa
while(aa!=0){ //aa值不等于0执行循环 !=0 !=0 !=0 !=0!=0 aa=0
int ss=aa%10;//aa值%10给ss ss=6 ss=5 4 3 2 1
System.out.println(ss);//输出ss6 5 4 3 2 1
aa=aa/10; //aa/10aa=12345 aa=1234 123 12 1 0
}
System.out.println("/n数值被颠倒");
}
}
4-14 程序调试(3)
aa/10 123456/10=12345.6 因为aa为整数型的根据自动转换类型所以就变成12345
aa%10 123456%10=6 123456除以10等于12345.6 取余数为6
4-15 for循环结构
特点:循环次数固定
格式:for(参数初始化;条件判断;更新循环变量){循环操作;}
for(int i=0;i<100;i++){System.out.println("测试");}
顺序:先声明一个变量i为0,在判断条件i<100,在执行循环操作,再更新循环变量
例子:循环输入某同学考试的5门课成绩,并计算总分和平均分
import java.util.*;
public class AA{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int chengji=0;
for(int i=0;i<5;i++){
System.out.println("请输入你的第"+(i+1)+"个成绩");
int cheng=in.nextInt();
chengji=chengji+cheng;
}
System.out.println("5门课程的总成绩为:"+chengji+"平均分为:"+chengji/5);
}
}
4-16 for循环结构练习
例子:
import java.util.*;
public class AA{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("请输入一个数值");
int shuzhi=in.nextInt();
if(shuzhi<=0){
System.out.println("请输入0以上的数值");
}else if(shuzhi>=100){
System.out.println("请输入100以内的数值");
}
for(int i=0,j=shuzhi;i<=shuzhi&&shuzhi>0&&shuzhi<100;i++,j--){
System.out.println(i+"+"+j+"="+(i+j));
}
}
}
作业:随机产生100个0-100之间的整数,每个整数代表某个学生的成绩,计算出这些成绩的平均值。
public class AA{
public static void main(String[] args){
int chengji=0;
for(int i=0;i<100;i++){
chengji=chengji+(int)(Math.random()*100);
}System.out.println("平均分为:"+chengji/10+"分");
}
}
4-17 for循环常见问题及break语句
1)不要忘记两个;; for(int i=0;i<100;i++)
2)如果没有循环条件和循环变量不改变会造成死循环
3)break可以解除死循环
4-18 Continue语句
1)continue:只能用在循环里
2)作用:跳过循环体中剩余的语句而执行下一次循环
对比break和continue
1)使用场合:break可用于switch结构和循环结构中
continue只能用于循环结构中
2)作用(循环结构中):break语句终止某个循环,程序跳转到循环块的下一条语句。
continue跳出本次循环,进入下一个循环。
import java.util.*;
public class AA{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
while(true){
System.out.println("请输入密码:");
int password=in.nextInt();
if(password!=123456){
continue;
}break;
}
System.out.println("密码正确");
}
}
4-19循环嵌套 三种循环结构都可以嵌套使用
总结循环结构
区别1:语法
while(条件){循环体}
do{循环体}while(条件)
for(初始化;条件;更新循环变量){循环体}
区别2:执行顺序
while循环:先判断在执行
do-while循环:先执行后判断
for循环:先判断在执行
区别3:使用场合
循环次数确定的情况,通常选用for循环
循环次数不确定的情况,通常选用while和do-while循环
4-20 实例:九九乘法表
public class AA{
public static void main(String[] args){
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+" ");
}System.out.println();
}
}
}
4-21 实例:(1)
*求1900年1月1日------2015年12月30日 相隔多少天
*
* 1求瑞年366 平年365
*
* */
public class AA{
public static void main(String[] args){
int sum=0;
int k=0;
int l=0;
for(int i=1900;i<=2015;i++){//给i值为1900,限制i<2015,每执行一遍i+1
if(i%4==0&&i%100!=0||i%400==0){//如果达到瑞年的条件后执行
sum=366+sum;//算19年到15年瑞年的天数
}else{//相反执行下面
k=365+k;//算19年到15年平年的天数
}l=k+sum;//算总天数
}System.out.println("1900年到2015年相隔"+l+"天");
System.out.println("瑞年有"+sum+"天");
System.out.println("平年有"+k+"天");
}
}
实例:(2)
/*
*求1900年1月1日------2016年5月7日 相隔多少天
*
* 1求瑞年366 平年365
* 2判断月份
* */
public class AA{
public static void main(String[] args){
int sum=0;
for(int i=1900;i<=2015;i++){//给i值为1900,限制i<2015,每执行一遍i+1
if(i%4==0&&i%100!=0||i%400==0){//如果达到瑞年的条件后执行
sum=366+sum;//算19年到15年瑞年的天数
}else{
sum=365+sum;//算19年到15年平年的天数
}
}
for(int month=1;month<=4;month++){//给month值为最低1月,限制month为不超过4月;没执行一次月份+1
if(month==2){//判断是否为2月
if(2016%4==0&&2016%100!=0||2016%400==0){//判断16年的2月是否为瑞年
sum=29+sum;//如果是瑞年的2月就为29天+总天数
}else{//如果不是瑞年就是平年了
sum+=28;//如果是平年的2月就为28天+总天数
}
}else{//判断完16年2月在判断4.6.9.11月为30天
if(month==4||month==6||month==9||month==11){
sum+=30;
}else{//除2.4.6.9.11其他的就是31天
sum+=31;
}
}
}
sum+=7;//总天数在进行加5月份的7天
System.out.print("1900年1月1日到2016年5月7日一共"+sum+"天");
}
}
实例:(3)
/*
*1.求9月份第一天为星期几
* 1900年1月1日--2012年9月1日 到现在一共有多少天数对7进行去摸
* 结果就为星期几
*
*
* */
public class AA{
public static void main(String[] args){
int sum=0;
for(int i=1900;i<=2011;i++){//这里是算19001月-2011.12的天数
if(i%4==0&&i%100!=0||i%400==0){
sum=366+sum;
}else{
sum=365+sum;
}
}
for(int month=1;month<=8;month++){//这里是算2012年1月-8月的天数
if(month==2){//算2012年的2月为瑞年还是平年
if(2012%4==0&&2012%100!=0||2012%400==0){
sum=29+sum;
}else{
sum+=28;
}
}else{//算2012年的4.6.9.11和其他的天数
if(month==4||month==6||month==9||month==11){
sum+=30;
}else{
sum+=31;
}
}
}
sum+=1;//总天数在进行加9月份的1天
System.out.print("2012年9月1日为星期"+sum%7);//上面求出天数来在%7天就知道是星期几了
}
}
实例:(4)
/*
* 2.求9月1日为星期几,初步打出星期表格
*测试
* */
public class AA{
public static void main(String[] args){
int sum=0;
for(int i=1900;i<=2011;i++){
if(i%4==0&&i%100!=0||i%400==0){
sum=366+sum;
}else{
sum=365+sum;
}
}
for(int month=1;month<=8;month++){
if(month==2){
if(2012%4==0&&2012%100!=0||2012%400==0){
sum=29+sum;
}else{
sum+=28;
}
}else{
if(month==4||month==6||month==9||month==11){
sum+=30;
}else{
sum+=31;
}
}
}
sum+=1;//上面算的总天数在加9月份的1天为
int wekday=sum%7;//算出星期几来
System.out.println("日\t一\t二\t三\t四\t五\t六");//输出周期并每天的空格为7个
for(int i=1;i<=wekday;i++){//给i为1(最低星期一);算出的星期几在和i比对;每执行一次i+1
System.out.print("\t");//每执行一次增加7个空格(和上面的周期对齐)
}
System.out.print("1");//空出相应的空格后填1
}
}
实例:(5)
/*
*1.求月份第一天为星期几
* 1900年1月1日--2012年9月1日 到现在一共有多少天数对7进行去摸
* 结果就为星期几
*
* 2.求当月有多少天
* 3.制作2012年9月份的日历
* */
public class AA{
public static void main(String[] args){
int sum=0;
for(int i=1900;i<=2011;i++){
if(i%4==0&&i%100!=0||i%400==0){
sum=366+sum;
}else{
sum=365+sum;
}
}
for(int month=1;month<=8;month++){
if(month==2){
if(2012%4==0&&2012%100!=0||2012%400==0){
sum=29+sum;
}else{
sum+=28;
}
}else{
if(month==4||month==6||month==9||month==11){
sum+=30;
}else{
sum+=31;
}
}
}
sum+=1;
int wekday=sum%7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<=wekday;i++){
System.out.print("\t");//上面都解释了,就不解释了
}
for(int i=1;i<=30;i++){//9月份最低为1天,最高为30天,i值每执行一次+1
if(sum%7==6){//判断当天是否为星期6
System.out.print(i+"\n");//如果是就换行
}else{//如果不是
System.out.print(i+"\t");//如果不是就+7个空格,和天数相匹配
}
sum++;上面每递增1天,总天数也跟着增加(因为上面总天数是到9月1日的)
}
}
}
实例:(6)
/*
*
* 制作一份用户输入年份和月份显示的日历
*
* */
import java.util.*;
public class AA{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("请输入年份");
int year=in.nextInt();
System.out.println("请输入月份");
int month=in.nextInt();
int sum=0;
for(int i=1900;i<year;i++){
if(i%4==0&&i%100!=0||i%400==0){
sum=366+sum;
}else{
sum=365+sum;
}
}
for(int i=1;i<month;i++){
if(i==2){
if(year%4==0&&year%100!=0||year%400==0){
sum=29+sum;
}else{
sum+=28;
}
}else {
if(i==4||i==6||i==9||i==11){
sum+=30;
}else{
sum+=31;
}
}
}
sum+=1;
int wekday=sum%7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<=wekday;i++){
System.out.print("\t");
}
for(int i=1;i<=31;i++){
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}
}
沙发我的,哈哈哈哈 收下笔记,学习去了233~ 学习了,顶你 是好东西啊.. 写的也很多 对于不太懂的来说只是看一眼啊. 看到这个,想起了,当年那个TC的程序。。。。 腻害腻害 有用啊! 先留存下来,日后慢慢学习!感谢楼主! LZ好勤奋啊!被你感动了{:301_999:}
页:
[1]
2