[JAVA] 2. Java中的控制流
Posted modai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[JAVA] 2. Java中的控制流相关的知识,希望对你有一定的参考价值。
1. 比较运算符
与大多数的编程语言中的比较运算符一样,主要包含了== != >= <= < >
这六种比较运算符。
2. 逻辑运算符
与大多数的编程语言中的比较运算符一样,主要包含了! && ||
这三种逻辑运算符,非,并,或。
这些逻辑运算符拥有截断的效果,即当前者满足一定条件,后者就不去考虑了。
3. 条件语句
在条件语句中,如果代码块中只有一条语句的话,就不需要使用花括号了,这时,可以将else if;else等放在与if同缩进的位置。
简化编码
- 当定义了一个逻辑变量的时候,可以直接通过比较运算符定义逻辑变量的值。如
isHot = (tmep>30)
- 三元运算符:和其他编程语言一样。
项目:FizzBuzz
自己的实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//FizzBuzz
Scanner scanner = new Scanner(System.in);
System.out.print("输入一个数字: ");
byte inputNumber = scanner.nextByte();
final byte THREE = 3;
final byte FIVE = 5;
final byte FIFTEEN = 15;
String result = inputNumber % FIFTEEN == 0 ? "FizzBuzz" : (inputNumber % FIVE == 0 ? "Buzz" : (inputNumber % THREE == 0 ? "Fizz" : String.valueOf(inputNumber)));
System.out.println(result);
}
}
要注意的是,把特殊的放在首位进行判断,如果把对15整除放在后面,会导致,Fizz或Buzz的首先输出。
//Mosh的解决方法
//这里对FizzBuzz这一情况是通过&&进行的判断
//然后为了让代码更DRY,将FizzBuzz的判断放在了Fizz判断之后,将其当作了子判断。
//by the way,个人认为这样不够DRY,我们可以这么写
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//FizzBuzz
Scanner scanner = new Scanner(System.in);
System.out.print("输入一个数字: ");
int inputNumber = scanner.nextInt();
final byte THREE = 3;
final byte FIVE = 5;
String result = "";
if(inputNumber%THREE==0)
result+="Fizz";
if (inputNumber%FIVE==0)
result+="Buzz";
if (result.equals(""))
result = String.valueOf(inputNumber);
System.out.println(result);
}
}
个人觉得,这样写更为DRY。
4. 循环语句
自然就是我们大家所熟知的for
和while
,在我们知道循环次数的时候,最好使用for循环,反之使用while循环。
当然,提到了while,在Java中还有do...while...,它可以保证循环体至少执行一次
。
在while循环中,我们可以通过continue
和 break
来控制循环,特别是,while循环中的条件为True的时候(老生常谈)。
tip:
String是一个引用类型的数据,当使用!=进行比较的时候,在JAVA中,并不会比较两者的值是否一致,它比较的是地址或是字符串对象。比较字符串的时候要使用.equals进行比较。
by the way,当然有些时候 == 起作用,是因为两个字符串为简单声明的,即通过 String a = "balabala"进行的声明,其相同的字符串共享空间。
在Java中还有一种循环,叫For-Each循环:
虽然这么叫,但是并没有像javascript一样,新增了关键字,这里依旧使用的是For作为关键字,不同的是,对于数组而言,如果要遍历数组中的每一项,可以这样写
for(TYPE item: itmes)
do something with item.
在数组遍历上,如果不考虑数组的序号,则使用For-Each,否则,使用For
以上是关于[JAVA] 2. Java中的控制流的主要内容,如果未能解决你的问题,请参考以下文章
java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段
java题 任选一个文件,使用文件输入流,将其数据读取出来,并打印到控制台!! 代码简单能够有注释