标签:javascrip asc 条件语句 数组 输入 逻辑运算符 ext += 解决
与大多数的编程语言中的比较运算符一样,主要包含了== != >= <= < >
这六种比较运算符。
与大多数的编程语言中的比较运算符一样,主要包含了! && ||
这三种逻辑运算符,非,并,或。
这些逻辑运算符拥有截断的效果,即当前者满足一定条件,后者就不去考虑了。
在条件语句中,如果代码块中只有一条语句的话,就不需要使用花括号了,这时,可以将else if;else等放在与if同缩进的位置。
isHot = (tmep>30)
自己的实现:
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。
自然就是我们大家所熟知的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
标签:javascrip asc 条件语句 数组 输入 逻辑运算符 ext += 解决
原文地址:https://www.cnblogs.com/modai/p/12663967.html