1.不能在嵌套的两个块中声明同名变量
public static void main(String[] args) {
int n;{
int k;
int n;
}
}
}
1.if语句:当条件为真时,执行
if(yourSales>=target)
{
performace="Satisfactory";
bonus=100;
}
为flase时,执行else块中语句
if(yourSales>=target)
{
performace="Satisfactory";
bonus=100;
}
else{
performace="Unsatisfactory";
bonus=0;
}
其中,else与最近的if语句成一组,即
if(yourSales>=2*target)
{
performace="Excellent";
bonus=1000;
}
else if(yourSales>=1.5*target)
{
performace="Fine";
bonus=500;
}
else if(yourSales>=target)
{
performace="Satisfactory";
bonus=100;
}
else {
System.out.println("You arefired");
}
2.while循环
当while条件为true,开始循环执行;当条件一开始就为flase,则一次也不知执行
while(balance<goal){
blance+=payment;
}
语句可能不会执行,如果要求至少执行一次,则使用do.....while语句,先执行语句,在判断条件
do{
blance+=payment
}
while(blance<goal)
3.for循环
for(int i=0;i<=10;i++){
System.out.println(i);
}
for循环第一条语句定义的变量作用域为for循环的整个循环体。变量在for语句内部定义,就不能在外部使用,但是两个独立for循环可以定义同名变量,
break 结束循环 continue 结束本次循环
带outer标签的continue 内部循环跳到外部循环
抽奖小程序
import java.util.*;
/**
* code 抽奖
* @author asus
*
*/
public class Test1 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int k=in.nextInt();
System.out.println("一共多少?");
int n=in.nextInt();
int lotteryOdds=1;
for(int i=1;i<=k;i++)
lotteryOdds=lotteryOdds*(n-i+1)/i;
System.out.println("一分之"+lotteryOdds);
}
}
for(;;) 无限循环 等同于while(true)
4.switch 多重选择
switch 语句将从与选项值相匹配的case标签处,开始执行直到遇到break语句,或者执行到switch语句的结束处为止。如果没有相匹配的case标签,而有default子句,就执行这个子句。
(如果末尾没有break语句,就会接着执行下一个case分支语句。所以,程序中很少用switch语句。)
switch (4)
{
case 1;
.....
break;
case 2;
.....
break;
case 3;
.....
break;
case 5;
.....
break;
default:
.....
break;
}
case标签只能整数(long除外)和枚举,1.7可以使用string类型的参数(原理:case子句的值也被换成了原来字符串常量的哈希值。经过这样的转换,Java 虚拟机所看到的仍然是与整数类型兼容的类型)。