1
resposta

Maneira mais fácil de resolver exercício do dia útil

Estava fazendo o exercício sobre verificar se um dia é útil ou não, e percebi que muita gente (inclusive eu) se confundia com os operadores lógicos || e &&.

Mas encontrei uma forma mais simples e direta de resolver:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Digite o dia da semana em letras minusculas: ");
        String dia = scanner.nextLine();

        if (!dia.equals("sabado") && !dia.equals("domingo")){
            System.out.println(dia +" é um dia útil");
        } else {
            System.out.println(dia + " não é um dia útil");
        }
    }
}

Acredito que assim fique mais fácil de resolver

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

O operador lógico && é uma adição; lê-se como "condição 1 E condição 2: se verdadeiras, faça." . No caso, as duas ou mais condições têm de ser verdadeiras para que a condição seja satisfeita.

Já o operador || é uma condicional, no sentido de que "OU condição 1 é verdadeira OU condição 2 é verdadeira" . Neste caso, apenas uma das condições tem de ser verdadeira para satisfazer a condição.

Aqui, fiz algumas formas alternativas de escrever o seu codigo, coda e que nem matimatica, voce tem varias formas para chegar num mesmo resultado.

Early return

package test;

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Digite o dia da semana em letras minusculas: ");

        String dia = scanner.nextLine();
        if (dia.equals("sabado") || dia.equals("domingo")) {
            System.out.println(dia + " não é um dia útil");
            return;
        }

        System.out.println(dia +" é um dia útil");
        scanner.close();
    }
}

Switch Case

package test;

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Digite o dia da semana em letras minusculas: ");
        String dia = scanner.nextLine();
        
        switch (dia) {
            case "segunda":
            case "terca":
            case "quarta":
            case "quinta":
            case "sexta":
                System.out.printf("%s e um dia util%n", dia);
                break;
            default:
                System.out.printf("%s nao e um dia util%n", dia);
        }
        
        scanner.close();
    }
}

Voce pode garantir que a letra seja minuscula pondo no scanner apos a chamado do metodo .nextLine() um .toLowerCase(), assim:
String dia = scanner.nextLine().toLowerCase();