Java 其他声明获胜';t在if-else语句中执行
出于某种原因,无论我做什么,每次在Java程序中生成if-else语句时,它要么只执行if语句,要么同时执行if和else语句Java 其他声明获胜';t在if-else语句中执行,java,if-statement,Java,If Statement,出于某种原因,无论我做什么,每次在Java程序中生成if-else语句时,它要么只执行if语句,要么同时执行if和else语句 import java.util.Scanner; public class Week06_NelsonPimentel_Assignment { public static void main(String[] args) { Scanner input = new Scanner(System.in); int[] vali
import java.util.Scanner;
public class Week06_NelsonPimentel_Assignment {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] validnum;
int i = 0;
validnum = new int[5];
System.out.println("Please enter a number between 50 and 100");
while (i < validnum.length) {
validnum[i] = input.nextInt();
if (validnum[i] <= 101 || validnum[i] >= 49) {
System.out.println("yes");
i++;
} else {
System.out.println("no");
}
}
}
}
import java.util.Scanner;
公共课周06_Nelson Pimentel_作业{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int[]安定;
int i=0;
安定=新整数[5];
System.out.println(“请输入一个介于50和100之间的数字”);
而(i<有效长度){
validnum[i]=input.nextInt();
if(安定[i]=49){
System.out.println(“是”);
i++;
}否则{
系统输出打印项次(“否”);
}
}
}
}
如果(validnum[i]=49){
将始终计算为true
,因此将打印“yes”并递增i
,当然,除非i
超出数组的边界
将|
替换为&&
也可以考虑编写<代码> int []NealNuth= new int(5);< /Cord>,而不是有两个单独的步骤。这样,<代码> ValueNUM/COD>永远不会处于一个未初始化的状态,这会导致更稳定的程序。
< P> <代码>(ValunUM[i]=49){< /C> >将始终评估为<代码> Trime< /Cord>,因此“是”。将被打印并递增i
,当然,除非i
超出数组的边界
将|
替换为&&
也要考虑编写<代码> int []NealNuth= new int(5);< /Cord>,而不是有两个单独的步骤。这样,
i++;
从if
中取出,或将while
循环替换为(注意:如果您使用for
循环,则不必使用i++;
):
for(int i=0;i
为什么要使用数组?在你发布的代码中,它看起来像是在浪费内存。你的代码中有一个无休止的循环,当
validnum[i]
不符合你的条件时,你就不推进循环索引。
将i++;
从if
中取出,或将while
循环替换为(注意:如果您使用for
循环,则不必使用i++;
):
for(int i=0;i
为什么要使用数组?在您发布的代码中,它看起来像是在浪费内存。根据您的业务逻辑,if语句将始终返回true 我的观察: 请输入一个介于50和100之间的数字
validnum[i] = input.nextInt();
if (validnum[i] <= 101 || validnum[i] >= 49) {
}
validnum[i]=input.nextInt();
if(安定[i]=49){
}
无论您输入的是介于50到100之间还是小于50或大于100,if语句都将始终满足以下任一条件
validnum[i] <= 101
validnum[i] >= 49
validnum[i]=49
根据您的业务逻辑,if语句将始终返回true
我的观察:
请输入一个介于50和100之间的数字
validnum[i] = input.nextInt();
if (validnum[i] <= 101 || validnum[i] >= 49) {
}
validnum[i]=input.nextInt();
if(安定[i]=49){
}
无论您输入的是介于50到100之间还是小于50或大于100,if语句都将始终满足以下任一条件
validnum[i] <= 101
validnum[i] >= 49
validnum[i]=49
If这似乎是一个奇怪的过程,因为这是一个较大程序的较小部分,但目前If-else语句无法正常工作validnum[i]=49
始终是正确的您的意思是&
,而不是|
。但是请注意,您的逻辑与您的消息不匹配。如果这看起来像是一个奇怪的过程,因为这是一个更大程序的一小部分,但现在If-else语句根本无法正常工作validnum[i]=49
始终为真您的意思是&
,而不是|
。但请注意,您的逻辑与您的消息不匹配。“这样,validnum永远不会处于未初始化状态”明确的任务?起初它不起作用,但现在它实际上工作得很好,谢谢大家的快速反应,因为这已经让我痛苦了3个小时!!@AndyTurner:这很棘手(或者至少我觉得很棘手)使用初学者的理解词。你有更好的想法吗?“芭丝谢芭我只是不想把它叫做一个原因。当然,做它是因为它更简洁和地道,它并不安全。(也提到它,如果它被初始化为<代码> NULU/<代码)。也许我只是一个在C和C++白垩纪世界中枯萎的恐龙。“这样,安定永远不会处于未初始化状态”明确的任务?起初它不起作用,但现在它实际上工作得很好,谢谢大家的快速响应,因为这已经让我痛苦了3个小时!!@AndyTurner:这很棘手(或者至少我觉得很棘手)使用初学者的理解词。你有更好的想法吗?“芭丝谢芭我只是不想把它叫做一个原因。当然,做它是因为它更简洁和地道,它并不安全。(也提到它,如果它被初始化为<代码> NULU/<代码)。也许我只是一个在C和C++白垩纪世界中枯萎的恐龙。