一.条件判断
if(条件判断){
A
}
if(条件判断){
A } else {
B }
if(条件判断){
A } else if(条件判断){
B }… else{
C }
- 多分支判断,最多只执行一个分支;
- 从上向下进行分支判断,如果某个判断成立,执行其中的代码块,并且终止后面所有的判断
- 某个分支判断执行,说明它之前的所有的判断都不成立。
二.循环
while (条件判断) {
循环体
}
for(A;B;C){
循环体
}
A=初始化语句,一般定义变量
B=条件判断
C=收尾语句
- for循环中定义的变量,只在for中生效
- 变量的作用域,变量的作用范围,超出该范围,变量无效
- for循环中A,B,C三个部分都可以删去,相当于while(true);但是两个分号不能删除
例子:查询10000以内的完数
- java实现
public class wan {
public static void main(String []args) {
for (int ss=1;ss<10001;ss++) {
int n =0 ;
for (int s = 1; s <= ss; s++) {
int a1 = ss % s;
int a2 = ss / s;
if (a1 == 0 && a2 != ss) {
n = n + a2;
}
}
if (n == ss) {
System.out.println(n);
}
}
}
}
- python实现
def wan(a):
n = 0
for i in range(1, int(a) + 1):
a3 = a % i
a4 = int(a / i)
if a3 == 0 and a4 != a:
# print(a4)
n = n + a4
if n == a:
return a
lists = []
for a in range(1,10001):
if wan(a) != None:
print(wan(a))
执行发现一个问题
java的运行要比python快很多
猜想应该是java的数据类型定义的好处,导致从内存读取和计算时比python更快