Многозначность в выражении «если» - PullRequest
0 голосов
/ 22 октября 2011

Я пытаюсь реализовать, если наклон 1 положительный (больше нуля) и наклон 1 положительно умножить на -1

'Исключение в потоке "main" java.lang.Error: Неразрешенные проблемы компиляции: Синтаксисошибка на токене ";",.ожидаемый slope1 не может быть разрешен или не является полем

в LinearSlopeFinder.main (LinearSlopeFinder.java:25);

я пытался использовать вместо этого ",", но без кубиков

import java.util.Scanner;

public class LinearSlopeFinder {
    public static void main(String[]args){
        double x1, y1, x2, y2, n1, equation, constant = 0 ;
        double slope, slope1, slopeAns;
        Scanner myScanner = new Scanner(System.in);

        System.out.print("    What is the first set of cordinants? example: x,y ... ");
        String coordinate1 = myScanner.nextLine();
        String coordinates[] = coordinate1.split(",");
        x1 = Integer.parseInt(coordinates[0]);
        y1 = Integer.parseInt(coordinates[1]);

        System.out.print("    What is the second set of cordinants? example: x,y ... ");
        String coordinate2 = myScanner.nextLine();
        String coordinates1[] = coordinate2.split(",");
        x2 = Integer.parseInt(coordinates1[0]);
        y2 = Integer.parseInt(coordinates1[1]);

        //remember it is Rise over Run Y's over X's
        slope = (y1-y2);
        slope1= (x1-x2);
        slopeAns= slope / slope1 ;
            //below is the part that is not compiling but I am trying to insert
        if ( slope > 0 ; slope1 > 0 ){
            slope = slope * -1;
            slope1 = slope1 * -1;
        }

Ответы [ 4 ]

3 голосов
/ 22 октября 2011

Вы хотите использовать оператор && для 'и'. Я рекомендую вам прочитать раздел операторов руководства по Java (остальное тоже очень ценно).

1 голос
/ 22 октября 2011

В Java вы ищете оператор AND для оператора if, чтобы объединить два логических результата из slope> 0 и slope1> 0 в один логический.Оператор AND является &&, поэтому попробуйте:

if(scope > 0 && scope1 > 0) {
    scope *= -1;
    scope1 *= -1;
}

Другими логическими логическими операторами являются |(ИЛИ), & (И), ^ (XOR),!(НЕ), ||(короткое замыкание ИЛИ), && (короткое замыкание И), == (EQUAL TO),! = (NOT EQUAL TO),?: (IF-THEN-ELSE).

Разница между |и ||является то, что в Java, если первый оператор оказывается истинным, то он не будет оценивать второй или более оператор с ||но это будет с |.То же самое касается &&, если первый оператор равен false.

1 голос
/ 22 октября 2011

Это неправильно:

if ( slope > 0 ; slope1 > 0 ){

Вы имеете в виду:

if ( slope > 0 && slope1 > 0 ){
1 голос
/ 22 октября 2011

Заменить ; на &&.

if( slope > 0 && slope1 > 0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...