Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 其他声明获胜';t在if-else语句中执行_Java_If Statement - Fatal编程技术网

Java 其他声明获胜';t在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

出于某种原因,无论我做什么,每次在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[] 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>,而不是有两个单独的步骤。这样,ValueNUM>代码>永远不会处于一个未初始化的状态,这会导致更稳定的程序。

< P>您的代码中有一个<强>无限循环,当代码>不符合您的条件,您不推进循环索引。 将
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++白垩纪世界中枯萎的恐龙。