我正在编写一个程序用于编辑Ap编程课程。程序要求用户输入必须符合某些条件的三个整数。
第一个数字必须是数字3。 第二个数字可以是数字1,也可以是33到100之间(含)。 第三个数字必须是一个正数,可以被3整除或者可以被7整除。
我个人测试时出现零错误,但是,在编辑器中输入代码时coderunner没有通过。
我想查看是否正确使用我的if语句条件,特别是第三个条件或第3阶段。
import java.util.Scanner;
import java.lang.Math;
class Main2{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
String name;
int phase1;
int phase2;
int phase3;
int flag = 1;
int flag2 = 0;
System.out.println("Welcome. What is your name?");
name = scan.nextLine();
System.out.println("Hello "+name+". Try your best to crack the code!");
while(flag == 1){
System.out.println("PHASE 1");
System.out.println("Enter a number: ");
phase1 = scan.nextInt();
if(phase1 == 3){
System.out.println("Correct!");
flag2++;}
else{
System.out.println("Sorry, that was incorrect!\nBetter luck next time");
break;
}
System.out.println("PHASE 2");
System.out.println("Enter a number: ");
phase2 = scan.nextInt();
if(phase2 == 1 || (phase2 > 33 && phase2 <100)){
System.out.println("Correct!");
flag2++;}
else{
System.out.println("Sorry, that was incorrect!\nBetter luck next time!");
break;
}
System.out.println("PHASE 3");
System.out.println("Enter a number: ");
phase3 = scan.nextInt();
if(phase3 % 2 == 0 && (phase3 % 3 == 0 || phase3 % 7 == 0)){
System.out.println("Correct!");
flag2++;}
else{
System.out.println("Sorry, that was incorrect!\nBetter luck next time!");
break;
}
if(flag2==3)
flag=2;
System.out.println("You have cracked the code!");
}
}
}
答案 0 :(得分:0)
首先,在问题标题中你说“数字是偶数”,但在问题中你说数字应该是正数。那些是非常不同的东西。
在第2阶段,您的情况不具包容性。
在第3阶段,我没有看到你确认数字是否为正,假设这是你想要的。 “phase3%2 == 0”不会检查是否为正,它会检查该数字是否可以除以2(因此是偶数)。
答案 1 :(得分:0)
均匀分割意味着你没有余数。在你的第3个条件中没有必要检查是否(阶段3%2 == 0),因为这不是必需的。
介于33和100之间意味着您应该将条件&gt; =和&lt; =而不是&gt;和&lt;