你能帮我理解运营商的条件吗
import java.util.Scanner;
public class PrimeNumber {
boolean flag = true;
public boolean findPrimeNumber(int num){
for(int i = 2;i<num;++i){
flag = (num%i==0)?(false):true;
if(num%i==0){/* Here i want to ?: */
flag = false;
break;
}else{
flag = true;
}
}return flag;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter Number:");
boolean flag =new PrimeNumber().findPrimeNumber(sc.nextInt());
if(flag){
System.out.println("Prime Number !!!");
}else{
System.out.println("Not a Prime !!!");
}
}
}
答案 0 :(得分:1)
请参阅有关运营商的一些基本教程,请先查看Java Operators
从 Java Doc
运算符
?:
也称为三元运算符,因为它使用三个操作数。在以下示例中,此运算符应读作:&#34;如果someCondition为true,则将value1的值赋给result。否则,将value2的值赋给result。&#34;
以下程序ConditionalDemo2测试?:
运算符:
class ConditionalDemo2 {
public static void main(String[] args){
int value1 = 1;
int value2 = 2;
int result;
boolean someCondition = true;
result = someCondition ? value1 : value2;
System.out.println(result);
}
}
答案 1 :(得分:0)
你走了;
public class PrimeNumber {
boolean flag = true;
public boolean findPrimeNumber(int num){
for(int i = 2;i<num;++i){
flag = (num%i==0) ? false: true;
}return flag;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter Number:");
boolean flag =new PrimeNumber().findPrimeNumber(sc.nextInt());
if(flag){
System.out.println("Prime Number !!!");
}else{
System.out.println("Not a Prime !!!");
}
}
}
我想我可能会误解某些东西,如果有的话告诉我。
答案 2 :(得分:0)
根据您的代码,您的两行:
第1行:
flag = (num%i==0)?(false):true;//This one is almost equivalent to below
第2行:
if(num%i==0){/* Here i want to ?: */
flag = false;
break;
}else{
flag = true;
}
但是,使用三元运算符时不能中断。,如果这是您想知道的。