今天要点是分支和 while 循环,主要在做练习,熟悉代码。(博文后有几道练习题)
所谓程序猿,还得先成为码农呀(狂练),工多手熟后再进阶。
1、一条语句定义多个变量
int num1 = 10, num2 = 20, num3 = 30, num4 = 40;
double num1, num2;
2、分支(if;switch)//续day03
if 语句语法:
if (条件语句) {
条件语句成立要执行的代码
}
if ... else...语句语法:
if (条件语句) {
条件语句成立要执行的代码
} else {
条件不成立要执行的代码
}
if ... else if ..else ..语法:(可以有无限个分支 else if)
if (条件1) {
执行代码1
} else if (条件2) {
执行代码2
} else if (条件N) {
执行代码3
} else {
执行代码4
}
3、嵌套分支(分支嵌套)
if (条件1) {
if (条件2) {
执行代码1
} else if (条件3) {
执行代码2
} else {
执行代码3
}
} else {
执行代码4
}
4、switch 分支 (可有n多个case 和break)
switch (order1) {
case 数值1/数据1:
要执行的代码;
break;
case 数值2/数据3:
要执行的代码2;
break;
.......
default :
要执行的代码3;
break;
}
//如果变量不满足case 如果有default ,则执行defaul,没有则跳出。
//如果case中 没有break,则往下执行到第一个break为止。
//switch 中只有从上往下执行的顺序
//order1 数据类型必须是可以转换为int 的数据类型(byte/short/int/char),且order1也可以是字符串
5、循环(while,do...while...,for.)
需要在 一定条件 下重复操作的过程
循环条件:让循环不断进行的条件(当条件的结果一直为true时,这将是一个死循环;,一般情况尽可能避免使用死循环,特殊情况除外。)要注意循环控制条件的变化
循环操作:循环需要执行的操作
建议先执行循环操作,再改变循环条件,不过这得看实际情况
while 循环的语法:(满足条件则执行)
while (循环条件) {
循环体(要执行的操作)
}
//当循环体只有一条语句的时候可以省略大括号{},但不建议
//while (true); 这是一个最简单的死循环
do...while... 循环语法:不管条件如何,都必须执行一次循环体(先执行直到条件不满足)
do {
循环体
} while (循环条件);
//
补、eclipse 的debug 使用
- 先找到合适的语句打断点。
- 使用debug模式启动程序。
- 在断点中单步执行,并观察变量的值。
- 分析并修改问题。
- 重新执行断点调试,直到没有问题为止。
/*1、输出1 -100 间 能被3整除且个位数是6的所有整数
*/
public class Homework01 {
public static void main(String[] args) {
int i = 1 ;
while (i <= 100) {
if (i%3 == 0 && i%10 ==6){
System.out.println("1 -100 间 能被3整除且个位数是6的整数:" + i);
}
i++;
}
}
}
/* 2、求 1-1/2+1/3 -1/4...1/(n-1)-1/n 这样的一个数列的前n项和 */ import java.util.Scanner; public class Homework02 { public static void main(String[] args) { Scanner s = new Scanner(System.in); int i = 1; double sum = 0; double tempI = i; System.out.print("please input number n:"); int numN = s.nextInt(); while (i <= numN){ sum = sum + 1.0/(tempI); i++; //正负交替。或通过判断是否能被2整除要实现正负交替 if (tempI > 0){ tempI = (-1) * i; } else { tempI = i; } } System.out.println(sum); } }
/* 3、求一个球从100高度落下,每次落地后反弹回来原来的高度的一半,问第十次落地时一共经过多长距离,反弹了多高 100 + 50+50 + 25 +25 + 25/2*2 + 25/2/2 *2 */ public class Homework03 { public static void main(String[] args) { double high = 100; int count = 1 ; double sum = 0; do { if (count == 1){ //第一次落地 sum += high ; } else{ //第一次之后的触底 high = high/2.0; sum += high*2; } count ++; } while (count <= 10); System.out.println("球在第十次触地时反弹的路程:" + sum + "\n反弹的高度为:" + high); } }/*
4、计算 5!*/ public class Homework04 { public static void main(String[] args) { int i = 1; double product = 1; while (i <= 5) { product *= i; i++; } System.out.println("5的阶乘为:" + product); } }
/* 5、循环录入5个学员的成绩,计算这五个学员的总分与平均分 */ import java.util.Scanner; public class Homework05 { public static void main(String[] args) { Scanner s = new Scanner(System.in); int count = 1; int tempScore; int sumScore = 0; do { System.out.print("请输入第 " + count + " 名学生的成绩:"); tempScore = s.nextInt(); sumScore += tempScore; count++; }while(count <= 5); System.out.println("**成绩录入完毕**"); System.out.println("五为学员总成绩为:" + sumScore + ",平均分为:" + (sumScore/5.0)); } }
/* 6、求一个数(10位以内)是几位数 1234/10 = 123 */ import java.util.Scanner; public class Homework06 { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print("请输入一个位数小于10的正整数:"); int numberA = s.nextInt(); int count = 0; if (numberA <= 999999999){ while (numberA > 0){ numberA = numberA/10; count++; } } else { System.out.println("输入的数据不在范围内"); } System.out.println("该数为 " + count + "位数"); } }
/* 7、求一个数(7位以内)所有位的数字之和。(123456= 1+2+3+4+5+6) 4382/10 = 438 */ import java.util.Scanner; public class Homework07 { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print("请输入一个7为以内的正整数:"); int numberA = s.nextInt(); int sum = 0; if (numberA < 1000000){ while (numberA > 0) { sum += numberA%10; numberA = numberA/10; } } else { System.out.println("输入的数字不在范围"); } System.out.println("该数所有位的数字之和为:" + sum); } }
/* 2016年培养的学员25,每年增长25%,请问按照这个增长速度,到那一年会增长到100 */ public class looperTest02 { public static void main(String[] args) { int yearNum = 2016; double studentNum = 25; while (studentNum < 100) { studentNum = studentNum*1.25; yearNum += 1; } System.out.println("year=" + yearNum + ",studentNum=" + studentNum); } }