java不允许拿一个数字来作为布尔值使用,但在C/C++中是允许的,如下:
void example15(){
if(1){//在C语言中,1代表的是真,0代表的是假,C++也是一样
printf("true");
}else{
printf("false");
}
}
java中必须使用一个条件表达式将其转换成布尔类型值。当然,也可以直接使用布尔值,如下:
public void example1(){
if(true){//直接使用真假值
System.out.println("true");
}
int t = 3;
if(t>3){//条件表达式
System.out.println("true");
}
}
if-else是控制程序流程的最基本的形式,如下:
public void example2(){
/**
* if-else
*/
int score = 90;
if(score>0){
System.out.println("你及格了!");
}else {//else语句是可以省略的
System.out.println("你不及格!");
}
/**
* if-else-if-else
*/
int week = 2;
if(week == 1){
System.out.println("今天是星期一");
}else if(week == 2){
System.out.println("今天是星期二");
}else {
//......
}
}
public void example3(){
int i = 0;
int j = 0;
while (i<5){
j += i;
i++;
}
System.out.println(j);//0+1+2+3+4=10
}
@Test
public void example4(){
int i = 0;
int j = 0;
do{
j += i;
i++;
}while (i<5);
System.out.println(j);//0+1+2+3+4=10,它跟while的区别是它先执行一次
}
/**
* 从1加到100
*/
@Test
public void example5() {
int j = 0;
for (int i = 1; i <= 100; i++) {
j += i;
}
System.out.println(j);//5050
}
public void example6(){
/**
* foreach数组
*/
int[] nums = {10,20,30,40,50};
int result = 0;
for(int i:nums){
result += i;
}
System.out.println(result);//150
/**
* foreach list集合
*/
List strings = new ArrayList<>();
strings.add("张三");
strings.add("李四");
strings.add("王二");
String str = "这个集合中有三个人,分别是:";
for(String s:strings){
str += s + ",";
}
str = str.substring(0,str.length()-1);
System.out.println(str);//这个集合中有三个人,分别是:张三,李四,王二
/**
* foreach map集合
*/
Map map = new HashMap<>();
map.put("张三","20");
map.put("李四","25");
map.put("王五","19");
for(String s:map.keySet()){
System.out.println(s + "的年龄是:" + map.get(s) + "岁!");
}
/**
* 李四的年龄是:25岁!
* 张三的年龄是:20岁!
* 王五的年龄是:19岁!
*/
}
return关键字有两个用途:一是指定一个方法返回什么值,二是导致当前方法退出。如果在返回void的方法中没有return语句,那么在该方法的结尾处会有一个隐式的return。
@Test
public void example9() {
Boolean b = this.back1(10, 5, 20);
System.out.println(b);
Boolean b1 = this.back1(25, 5, 20);
System.out.println(b1);
}
//判断是否在两数之间
private Boolean back1(Integer num, Integer begin, Integer end) {
if (num >= begin && num <= end) {
return Boolean.TRUE;
}
return Boolean.FALSE;
}
break用于强制退出循环,不执行循环中的剩余的语句,而continue是中止当前循环,继续下一次循环。
@Test
public void example10(){
System.out.println(useBreak(10));
System.out.println(useContinue(10));
}
private int useBreak(int num){
int result = 0;
for(int i=1;i
goto是源码级上的跳转,这使其招致了不好的声誉,如果一个程序总是从一个地方跳到另外一个地方,这就很难识别程序的控制流程。事实上,真正的问题并不在于使用goto,而是在于goto的滥用,在少数情况下,goto是组织控制流程的最佳手段,goto可以用于深层嵌套循环的跳出。尽管goto仍是java中的一个保留字,但在语言中并未使用它。
java使用标签、break和continue关键字进行跳转的操作,带标签的break会中断循环并跳出标签所指的循环,带标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环。
@Test
public void example11(){
//三个小组,每个小组5名学生
int[][] arr = {{65,80,92,85,55},{58,65,76,52,66},{67,63,52,85,76}};
int result = 0;
out:for(int i=0;iarr[i][j]?result:arr[i][j];
}
}
System.out.println(result);//76
}
每个case是一个tag,当匹配到tag时会忽略其他tag然后顺序执行代码体,直到遭遇break或者}
@Test
public void example12(){
int i=9;
switch (i) {
default:
System.out.println("default");
case 0:
System.out.println("zero");
case 1:
System.out.println("one");
case 2:
System.out.println("two");
}
/*
* default
* zero
* one
* two 分析:每个case是一个tag,当匹配到tag时会忽略其他tag然后顺序执行代码体,直到遭遇break或者}
*/
}